路由 , flask实例化配置 , Fask app对象配置 , 特殊装饰器 , Flask蓝图Blueprint
-
路由相关
添加路由的一种方式 , 路由配置: app.add_url_rule("路由地址",view_func=视图函 数,endpoint="反向地址")
endpoint 通过url_for 反向生成url地址,默认是视图函数名 --解决视图函数重名
defaults 传递默认参数
strict_slashes 是否严格遵守URL地址规则 strict_slashes=True(就是遵守URL地址规则)在 地址末尾不可以出现 / 如果是False就可以出现斜杠
redirect_to 永久重定向
上述详情:
添加路由的两种方式
第一种是通过装饰器添加(普通添加)
第二种 通过url_for
defaults 传递默认参数
是否严格遵守URL地址规则以及永久重定向
动态路由
-
flask实例化配置
更改文件存放目录
更改文件访问路径
-
Fask app对象配置
单独创建一个py文件
-
特殊装饰器
类似于django的中间件
before_request 在请求进入视图函数之前作出响应
after_request 在视图函数处理之后执行 , 响应返回客户端之前, 且执行顺序是倒序
before_request (在请求进入视图函数之前作出响应)
after_request (在视图函数处理之后执行 , 响应返回客户端之前, 且执行顺序是倒序)
重定义错误提示, 404页面
@app.errorhandler(404)
def error404(arg):
print(arg)
# return '好嗨哟!!!'
return redirect("https://www.autohome.com.cn/beijing/asdfgasdfasdf") #这个错误页面网址可以自己在网上拷贝
-
蓝图
大致流程是 user.py --> __init__.py导入user.py里的部分内容 --> manager.py导入 __init__.py里的部分内容 (详情见代码中的注释)
user.py --> __init__.py --> manager.py
views/user.py 文件 (导入蓝图 , 定义蓝图 , 视图函数)
# 导入蓝图
from flask import Blueprint
# 定义蓝图,蓝图名叫u_bp
u_bp = Blueprint('user', __name__)
# 设置路由地址,写视图函数
@u_bp.route('/user')
def user():
return 'I an user'
# views视图函数
__init__.py 文件 (导入flask , 导入定义好的蓝图 , 配置启动蓝图的配置项)
# 导入flask
from flask import Flask
# 导入我们的蓝图
from .views.user import u_bp
# 把 Flask(__name__) 赋值给app 再返回给 create_app
def create_app():
app = Flask(__name__)
# 把我们定义的蓝图名称传到这里来
app.register_blueprint(u_bp)
return app
manage.py 文件 (导入启动蓝图需要的配置项和蓝图 , 启动蓝图并监听本机所有ip和5500端口)
# 导入__init__里面的内容
from app01 import create_app
# 把create_app 赋值给my_app
my_app = create_app()
# 配置项,让项目自动重启并且用my_app来启动蓝图,监听电脑全部ip和5500端口
if __name__ == "__main__":
my_app.run("0.0.0.0", 5500, debug=True)
# (本页)在manager.py文件里启动蓝图
文件位置图片