flask的使用01
简单的fbv的方式启动flask 以及了解框架
https://blog.csdn.net/weixin_43063753/article/details/87951216
flask的使用02
flask的基础路由等
https://blog.csdn.net/weixin_43063753/article/details/87951276
欢迎关注
Flask的使用03–专栏 - QQ群:166477105,Python技术开发 - CSDN博客
https://blog.csdn.net/weixin_43063753/article/details/87986534
浅谈Flask基本工作流程 --04
https://blog.csdn.net/weixin_43063753
flask的使用 05 基于websocket搭建网页聊天室 - BigC哥 - CSDN博客
https://blog.csdn.net/weixin_43063753/article/details/88067048
Flask小结
1.Flask Response 5种返回方式 HttpResponse return "字符串" render_template return render_template("模板名称") 默认存放路径 = templates redirect return redirect("/login") Flask 特殊 jsonify return jsonify({"name":1}) # 在响应头中加入 Content-type:application/json - app.config["JSONIFY_MIMETYPE"]send_file return send_file("文件路径") # 打开并返回文件内容
2.Flask Request
request.method 存放 HTTP 请求方式
request.form 存放 FormData 中的数据
request.args 存放 URL 中的参数数据
request.data 存放 原始请求体中数据 因为 Content-type : 不被认可,原始请求体中数据
request.json 存放 Content-type:application/json
request.files 存放 FormData 中文件数据
request.path 获取当前访问路径的路由地址(/login)
3.Jinja2
{{}} 取值 执行
{%%} 逻辑代码 for if else macro
4.Flask中的Session
from flask import session
app.secret_key = “#KaTeX parse error: Expected 'EOF', got '#' at position 37: …ECRET_KEY"] = "#̲%^&*(”
def view():
session["key"] = "value"
if session.get("key"):
这个session 是序列化后(加密)存放在客户端的Cookies中 默认名称为 session
app.config["SESSION_COOKIE_NAME"] = "mysession"
5.路由
@app.route("/login",methods=[“GET”,“POST”],endpoint=“反向名称”,strict_slashes=True,defaults={“nid”:1},redirect_to="/")
def login(nid):
return str(nid)
endpoint - url_for
strict_slashes=True 是否严格要求路由匹配规则 /
redirect_to 永久重定向 301
**动态路由参数
@app.route("/login/<arg>")
def login(arg)
6.Flask实例化配置:
Flask(name)
template_folder 更改模板存放路径 默认 tempaltes
static_folder 更改静态文件 存放 路径 默认 static
static_url_path 更改静态文件 访问 径路 默认 / + {static_folder}
蓝图中
url_prefix = “/bp”
7.app配置,Flask对象配置
class setting(object):
DEBUG=True
app.config.from_object(setting)
忘了配置项:
app.default_config 存放了默认配置
8.蓝图 Blueprint
理解为 不能够被run的 Flask 实例
Blueprint:
from flask import Blueprint
bp = Blueprint(“bp”,name,url_prefix="/bp",template_folder,static_folder,static_url_path)
@bp.route("/bp",methods=[“GET”,“POST”])
def bp_func():
Flask:
app.register_blueprint(bp)
9.特殊装饰器
@app.before_request 在请求进入视图函数之前做出响应
@app.after_request 在请求结束视图函数之后 - 响应返回客户端之前
@app.before_request
def be1():
return None
@app.after_request
def af1(res):
return res
正常执行顺序: be1 - be2 - be3 - views - af3 - af2 - af1
异常执行顺序:be1 - af3 - af2 - af1
@app.errorhandler(404) 重定义错误提示
def error404(args) args:错误信息
10.Flask CBV:
from flask import views
class Login(views.MethodView):
def get(self):
def post(self):
app.add_url_rule("/login",view_func=Login.as_view(name="login"))
2019年2月27日
-
Flask 中的 CBV
class Login(views)
def get(self,*args,**kwargs):
return render_templatedef post(self,*args,**kwargs):
return “asd”
from flask import views
class Login(views.MethodView):
# methods = [“GET”,“POST”]
def get(self):
return render_template(“login.html”)
def post(self):
return "123"
app.add_url_rule("/login",view_func=Login.as_view(name=“login”))
2.request
request.method
request.form
request.args
request.values
request.files
my_file = request.files.get("MyFile")
my_file.save(my_file.filename)
3.Flask-Session
字典的形式
session[‘usaername’]=‘value’
value可以用时间戳+用户名+ip