关于flask我有话说
flask作为一个轻量级框架,它里面有好多扩展包需要下载,比较麻烦,而且有的时候flask需要在虚拟环境下运行,但是他的优点还是有滴 ,只要是用过Django的人,都会觉得flask是真的 '轻'
Flask自由、灵活,可扩展性强,能结合最流行最强大的Python库 入门简单,即便没有多少web开发经验,也能很快做出网站 非常适用于小型网站 非常适用于开发web服务的API 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验 各方面性能均等于或优于Django Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库 Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一 Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
flask里面的技术点有很多,比如cookie ,session ,过滤器 ,四个钩子,werkzeug和jinja2 ,蓝图.等等.
先来说说这四个钩子,很多人会问:钩子?什么钩子,肯定一脸懵逼,对于钩子我的理解是: 可以把flask四种钩子看作是修饰器,我们在后端可以进行调用做相关的操作.使用钩子函数时,我们需要借助flask的全局变量g.g作为中间变量,在钩子函数和视图函数中间传递数据.我们先引入全局变量g
下面是四个钩子的代码
# redirect 跳转(重定项) jsonify标准的json类型 url_for跳转from flask import Flask,request,jsonify,redirect,url_for# 初始化# from Config import Configapp =Flask(__name__)# ascii码为False ,不会显示ascii码app.config['JSON_AS_ASCII'] = False# 指定方法,自己输出@app.route("/helloe")def hellow(): id = request.form.get('id') name = request.form.get('name') userdict = { 'id':1,'name':'张三'} return jsonify(userdict) # 输出的内容# errorhandler 用来捕获异常,并提示@app.errorhandler(404)def server_(e): return '此页面不从在'@app.errorhandler(405)def server_(e): return '此页面不允许访问'@app.before_first_requestdef before_(): print('第一次访问的时候执行')@app.before_requestdef before_(): print('每一次执行的时候执行')@app.after_requestdef after_(): print('每一次执行之后')@app.teardown_requestdef teardown(e): print('当发生异常的时候,获取异常') print(e) return eif __name__ == '__main__': # debug自动识别我们的代码 app.run(debug=True,host='127.0.0.1',port='8888')
flask有两大核心:WerKzeug和Jinja2
WerKzeug是一个遵循WSGI协议的python函数库
Jinja2是Python下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言.
模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名.
CSRF(这是我从网上找的一段话,因为我对这个也不是太了解) :
CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。
CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。
包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账
造成的问题:个人隐私泄露以及财产安全。
今天就写这么多了,其实我觉得不管是什么框架,flask也行,Django也好,都是一样的,我们不是靠着那两句flask才能走完一个项目,现在Django在市场上正火热,好多人都去学习,我觉的只有你有业务逻辑,编程思维,学起来什么都特别快,在打代码之前,想一想你下一步要做些什么,你想要的效果是什么样的,无非就是CV大法,删删改改的,好了,就这些了,祝大家学习flask如有神助,一日千里.