python flask
pipenv只是一个工具,并不是虚拟环境,pipenv创建的虚拟环境与项目是绑定的关系。
pip install pipenv
进入虚拟环境
pipenv shell
python在创建的初期会自己创建一些变量和函数,__name__就是其中变量之一,当__name__=__main__时候就是显示当前主函数的时候
python flask对于重定向返回的状态码是301,此时会触发两次请求,第一次是301 第二次是200
服务器自动重启
当开启flask的调试模式,服务器每次都会自动重启,不需要手动处理
app.run(debug=True)
注册路由的另一种方式
app.add_url_rule('/hello', view_func=hello)#这样就是在重新定向一个函数
app.config.from_object('config')导入配置文件
编写代码注意代码的封装性以及复用性,一行代码可以进行多次调用是很不错的代码
flask是一种特别随意的框架,所以在学习的时候,许多东西需要自己封装,这样更加灵活。
classmethod与staticmethod
二者都表示静态方法,classmethod是一种类变量的静态方法,而staticmethod是一种纯粹的静态方法
requests与urllib的对比
urllib请求方式比较繁琐,而requests请求方式比较简便,并且urllib在请求遇到404的时候会抛出异常,requests是不会抛出异常的
蓝图
一个app对象是由多个蓝图组成,这也是flask的一种机制,这也是本人比较喜欢的一种模式
wtforms
from wtforms import StringField, Form,IntegerField
# validators里面是函数
from wtforms.validators import length, NumberRange
def SearchForm(Form):
q = StringField("搜索关键字",validators=[length(min=1,max=99)])
page = IntegerField(validators=[NumberRange(min=1, max=99)], default=1)
目测validators里面都是一些函数
flask核心内容
LocalProxy到底是什么类型呢?
什么是flask上下文?
APPContext与RequestContext有什么区别:
APPContext是应用级别上下文,RequestContext是请求级别上下文
其中AppContext与RequestContext分别为应用上下文,请求上下文,current_app取请求上下文的栈顶元素,request请求栈顶元素。由上文可以看出当请求request的时候,flask会将AppContext入栈,所以会取到current_app
ctx