- 视图函数(v)
- 分类:无参路由,有参路由
from flask import Flask from flask_script import Manager app = Flask(__name__) manager = Manager(app) #url组成部分 协议 主机 端口 文件 参数 #无参路由,建议写上双斜线 route("/test/") .def test(): return "for test" #带参数的路由 route("/welcome/<name>/") .def welcome (name): return "hello {}" .format(name) #带参数的路由,指定参数的类型 route("/user/<int:uid>/") .def user(uid): return "欢迎{}号技师。。。。。。".format(uid) #带参数的路由 ,path类型 route("/path/<path:pa>/") .def path(pa): return pa if __name__ == "__main__": manager.run()
- 说明:
- 路由的末尾建议加上/,为了防止以后在后面出现斜线出现错误
- 路由的写法,如果需要去指指定参数的话,参数应该写在<>中
- 常用的类型有:int/float/path,默认的为字符串
- path路径还是一个字符串,只不过是/作为了一个特殊字符
- 分类:无参路由,有参路由
- 请求(request)(重要)学属性
route("/request/") .def req(): #当前请求的完整的url地址 #return request.url #不包含get参数的 #return request.base_url #只包含主机和端口号 #return request.host_url #只包含装饰器中的地址 #return request.path #请求的方式get,post两种 #return request.method #远程客户端的ip地址 #return request.remote_addr #所有的get参数的值都放在了 args里面 #print(request.args) #return request.args["username"] #请求头信息 print(request.headers) return request.headers["User-Agent"]
- 响应(response)
route("/response/")
.def response():
#直接返回字符串的响应
#return "ok"
#返回的时候顺便指定状态码
# return "page not found", 404
resp = make_response("我是创建的响应", 404)
#设置响应头
resp.headers["uid"] = 250
return resp
- 重定向(redirect)
-
from flask_script import Manager from flask import Flask, redirect, url_for app = Flask(__name__) manager = Manager(app)
# return '原来的内容'
# 重定向到新的路由 # 硬编码 # return redirect('/new/') # 反转函数url_for():根据视图函数的名字,反向构造路由地址 # return的结果是/new/ # return url_for('new') # 构造无参路由 # return redirect(url_for('new')) # 构造带参数路由 # return redirect(url_for('welcome', username='ergou')) # 构造完整路由地址,带协议和端口号 return url_for('new', _external=True)@app.route('/welcome/<username>/') def welcome(username):
return '我是{}'.format(username)
@app.route('/new/') def new():
return '这是新的内容'
if name == 'main':
manager.run()
- 终止及错误定制 ```python from flask import Flask, abort, redirect from flask_script import Manager app = Flask(__name__) manager = Manager(app) @app.route('/abort/') def err(): # 终止代码执行的对象,其实就是想系统抛出一个异常 # 系统捕捉到异常之后,进行处理 abort(404) return '嘻嘻,东东' # 定制错误页面 @app.errorhandler(404) def page(e): print(e) return '页面走丢了,请稍后再试...' # return redirect('http://www.baidu.com') if __name__ == '__main__': manager.run()
- 蓝本(Blueprint)
- 大量的视图放在同一个文件中,显然是不合适的,最佳的方案是使用蓝本
from flask import Blueprint
'''
1、导入蓝本
2、创建蓝本对象
3、注册蓝本
'''
user = Blueprint('user', __name__)
route('/login/')
. def login():
return '登录'
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~