Flask是Python web最火热三大框架之一!给我两小时带你完全入门
Flask是Python web最火热三大框架之一!给我两小时带你完全入门
阅读目录(Content)
-
一、Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来)
-
与Django的简单比较
-
二、基本使用
-
1.实例化Flask对象时,可选的参数
-
2.Flask中装饰器应用
-
4.请求响应相关
-
1.获取请求数据,及相应
-
2.flask中获取URL后面的参数(from urllib.parse import urlencode,quote,unquote)
-
三、配置文件
-
四、路由系统
-
1.可传入参数:
-
2.反向生成URL: url_for
-
3. @app.route和app.add_url_rule参数
-
4.自定制正则路由匹配
-
五、视图函数
-
1.Django中的CBV模式
-
2.Flask中的CBV
-
六、请求与响应
-
七、模板语法
-
1、模板的使用
-
1.为了防止xss攻击,加了验证,所以页面上显示字符串的形式,解决办法,有两种方法
-
2、自定义模板方法
-
3.宏
-
八、Session
-
九、蓝图
-
十、闪现(flash)
-
1、本质
-
2、闪现的用途
-
十一、中间件
-
十二、请求扩展
默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!
1.实例化Flask对象时,可选的参数
template_folder:模板所在文件夹的名字
root_path:可以不用填,会自动找到,当前执行文件,所在目录地址
在return render_template时会将上面两个进行拼接,找到对应的模板地址
static_folder:静态文件所在文件的名字,默认是static,可以不用填
static_url_path:静态文件的地址前缀,写成什么,访问静态文件时,就要在前面加上这个
app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx')
如:在根目录下创建目录,templates和static,则return render_template时,可以找到里面的模板页面;如在static文件夹里存放11.png,在引用该图片时,静态文件地址为:/xxxxxx/11.png
添加路由关系的本质:将url和视图函数封装成一个Rule对象,添加到Flask的url_map字段中
2.Flask中装饰器应用
debug = True 是指进入调试模式,服务器会在 我们的代码修改后, 自动重新载入,有错误的话会提醒,每次修改代码后就不需要再手动重启
点击查看详情
4.请求响应相关
1.获取请求数据,及相应
三、配置文件
四、路由系统
1.可传入参数:
2.反向生成URL: url_for
endpoint("name") #别名,相当于django中的name
4.自定制正则路由匹配
扩展Flask的路由系统,让他支持正则,这个类必须这样写,必须去继承BaseConverter
五、视图函数
1.Django中的CBV模式
2.Flask中的CBV
六、请求与响应
七、模板语法
1、模板的使用
Flask使用的是Jinja2模板,所以其语法和Django无太大差别
Flask中模板里面,执行函数时,需要带()才执行
1.为了防止xss攻击,加了验证,所以页面上显示字符串的形式,解决办法,有两种方法
方法一:在后端使用Markup,等价于Django里的mark_safe
方法一:在后端使用Markup,等价于Django里的mark_safe
v = Markup("<input type='text' />")
方法二:在前端使用safe
{{ v1|safe }}
2、自定义模板方法
Flask中自定义模板方法的方式和Bottle相似,创建一个函数并通过参数的形式传入render_template,
run.py
3.宏
只有定义的东西在很多地方去使用的时候才去用它,
html
八、Session
除请求对象之外,还有一个 session 对象。它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行**签名要使用会话,你需要设置一个**。
-
设置:session['username'] = 'xxx'
-
删除:session.pop('username', None)
九、蓝图
蓝图用于为应用提供目录划分:
小型应用程序:示例
大型应用程序:示例
其他:
-
蓝图URL前缀:xxx = Blueprint('account', __name__,url_prefix='/xxx')
-
蓝图子域名:xxx = Blueprint('account', __name__,subdomain='admin')
# 前提需要给配置SERVER_NAME: app.config['SERVER_NAME'] = 'hc.com:5000'
# 访问时:admin.hc.com:5000/login.html
十、闪现(flash)
session存在在服务端的一个字典里面,session保存起来,取一次里面还是有的,直到你删除之后才没有了
1、本质
flash是基于session创建的,flash支持往里边放值,只要你取一下就没有了,相当于pop了一下。不仅可以拿到值,而且可以把其从session里的去掉,
基于Session实现的用于保存数据的集合,其特点是:使用一次就删除。
2、闪现的用途
某个数据仅需用一次时,可以使用闪现
十一、中间件
在函数执行之前或函数执行之后想做点事情,有2种方式
第一种:装饰器
第二种:flask里面的扩展,相当于django中的中间件
运行结果:
还有一个@app.before_first_request:表示,当程序运行起来,第一个请求来的时候就只执行一次,下次再来就不会在执行了
十二、请求扩展
谢谢阅读,如有侵权请联系小编删除哦!