网站制作学习网Python→正文:python flask
字体:

python flask

Python 2023/10/7 15:01:09  点击:不统计

原载于:文章来源:www.forasp.cn网站制作学习

学习下python flask 框架
 
1. 安装 flask
pip install flask
2. 默认模板路径 templates输出
(1)返回模板内容
from flask import render_template
return render_template("xx.html")
(2) 跳转
from flask import redirect
redirect("/index")
(3) 直接返回内容
HttpResponse ,相当于return 
 3. 特殊封装返回
(1) 打开并发送文件 ,识别文件类型 Content-Type: xxxx
from flask import send_file
send_file(file_path)
(2) 输出json  文件类型 Content-Type:application/json 
from flask import jsonnify
jsonnify({k:v})
4. request 请求参数
from falsk import request  
request.mothed # 请求方式
request.arg # 参数字典
request.arg.get("name") # 参数字典具体值
request.form # form data 的字典
request.json
request.data
request.url 
request.host
         request.host_url
request.files # 直接保存文件
request.files.get("input file name")
request.files.get("xx").save("upfile.png")
5. Flask 中的session
from flask import session
(1) 生成密钥 :secret_key 用于session 序列化,必须设置
app.secret_key = "xxx 加密密钥"
(2) 直接使用 
session["a"]="b"
print(session.get("a"))
6. Flash 路由
app.route("/uri",methods=['post'],endpoint='only_login',defaults='',redirect_to='',strict_slashess='')
(1)methords # 运修访问的请求方式,默认为空
methods = ["post","get,'head','options','delete','put','trace','path']
(2) endpoint  # 可以理解为路由的 别名,必须唯一 ,连接 路由与处理方法,不写默认就是当前处理函数名称
(3) defaults = {"id":1,"xx":xxvalue} # uri   参数默认值 比如 /user/<int:id>  定义uri 参数id 为 int 形式
(4) redirect_to 永久重定向
(5)strict_slashess 是否严格路由 如果设置true  /login/ 则无法访问login 。如果是false 则 /login/ 和/login 一样
7. Flask 初始化配置
app = Flask (__name__,template_folder="xx",static_folder="x") 
__name__  当前文件名称
template_folder #默认模板存放路径
static_folder  #静态文件文件存放路径 默认static 
static_url_path #  静态文件路径访问地址 以/ 开始
app.debug = True # 设置debug 模式,自动重启,透传错误信息到前台,bug级别降低 
app.config['DEBUG']=True  # 与上面相同 效率高, 按照config 配置一定要大写
app.default_config # app默认配置
8. Flask 蓝图
蓝图 不能被Run 的Flask 对象,例如 下面 user.py 
from flask import Blueprint;
user_bp= Blueprint("标示",__name__,url_prefix="/api") # url_prefix定义url 前缀
@user_bp.route("/user_bp")
def user():
return "blue print"
# 与flask app 关联
在app 对象文件中引入 user.py 
import user
app.register_blueprint(user.user_bp) # 以标示为基准
9. 特殊装饰器  
@app.before_request # 在请求进入视图函数之前,如果返回不是null 会停止到当前,与定义顺序相同 
例子
@app.before_request
def befor1()
print("bf1")
return "bf1" # 如果有此句,则会终止后面程序,直接返回
@app.alter_request # 在请求结束视图函数后,在返回客户端响应之前,不影响返回,与定义顺序相反
例子:
@app.alter_request
def after1(resp)
print("after 1")
return resp
@app.errorhandler(HttpErrorCode) 重新定义 错误返回信息 HttpErrorCode
例子:
@app.errorhandler(404)
def error404(errormessage)
print("404")
return "not fund"  # 可以返回 flask 中的5种响应
10. Flask 中的CBV  --restAPI
from flask import views
# 处理方式
class Login(views.MethordView)
def get(self):
pass
def post():
pass
from  flask.views import MethordView 
# 处理方式
class Login(MethordView)
def get(self):
pass
def post():
pass
添加对应的URL
app.add_url_rule("/login", view_func=Login.as_view(name="login"))

<%77w%77%2Ef%6F%72p%73%70%2Ec%6E>

·上一篇:`lzma` module is not available >>    ·下一篇:python click 命令行 >>
推荐文章
最新文章