flask基础框架
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return 'hello world'
if __name__=='__main__'
app.run()
flask的具体内容
三板斧
return 'xxx'
return render_template('xxx.html')
return redirect('xxx.html')
FBV路由配置
@app.route(url='路由',methods=['请求'],endpoint='别名')
app.add_url_rule('路由',view_func=IndexView.as_view('index'))
CBV的路由配置
app.add_url_rule('url',view_func=IndexView.as_view('别名'))
反向解析
url_for('别名')
模板语言jinja2
与django的模板语言dtl相同,与其相比更加的强大
转换器
可以固定路径中名词的类型例如:int,string
无名分组与转换器
@app.route('/detail/<int:nid>',methods=['GET'])
配置文件(三种方式)
1.app.config['']=''(导入单个)
2.app.config.from_pyfile('python文件名称')(全部导入)
3.app.config.from_object('文件名称下继承config的类')(导入类)
cookies和session
-通过SECRET_KEY加密以后,当做cookie返回给浏览器
-下次发送请求,携带cookie过来,反解,再放到session中
注:配置session时必须写SECRET_KEY
闪现(flash)
闪现就是一个只能调用一次的空间,当你调用过后,该值就会消失
-设置:flash('aaa')
-取值:get_flashed_message()
-设置:flash('lqz',category='error1')
-取值:res=get_flashed_messages(category_filter=['error1'])
请求拓展(类似于中间件,但不是中间件)
@app.before_request 请求来时触发
@app.before_first_request 请求第一次来时触发
@app.after_request 请求走后触发
@app.teardown_request 视图执行完就会执行
@app.errorhandler(404) 判断状态码是否正确,正确就走这个函数
@app.template_global()全局标签
@app.template_filter()全局过滤器(写起来与django不太一样请注意)
蓝图
蓝图类似于django中include做路由分发,用来分文件与app的
在主启动界面写入要注册的蓝图
app.register_blueprint(views.blueprint)
在对应的视图里写入蓝图对象
蓝图名字=Blueprint('views',__name__)
g对象
g对象是一个全局变量,它的作用在于它只存在一个。当你对齐赋值时,它永远是那个最新的值