doraemon的python Flask框架 路由和配置

Posted 番茄炒蛋548542

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了doraemon的python Flask框架 路由和配置相关的知识,希望对你有一定的参考价值。

2.Flask中的路由和配置

2.1路由

from flask import Flask
app = Flask()
?
@app.route("/login")
route中的参数:
rule   "/login" 路由地址
methods     #允许进入视图函数的请求方式
endponts    #Mapping 路由地址和endpoint - 路由地址和视图函数Mapping endpoint在同一个app中不能出现重复,默认值是视图函数名
defaults    #默认路由参数
strict_slashes #是否严格遵循路由匹配规则
redirect_to #永久重定向 308 301
动态参数路由 "/get_muisc/<filename>"
@app.route("/get_muisc/<filename>" )
def get_muisc(filename)
return a
可以分页,获取文件,解决分类,解决正则路由问题

 

2.2 Flask初始化配置和实例配置

初始化配置

app = Flask(__name__,template_folder="templatess")
?
template_folder="templatess" 模板文件存放路径
static_folder 静态文件存放目录 默认值 是 static
static_url_path 静态文件访问路径 默认值 是 / + static_folder 静态文件的存储目录
@app.route("/futeng/<filename>")  #访问路径路径/futeng/<filename>
def get_img(filename):
  filepath = os.path.join("static",filename) #存储路径static
  return send_file(filepath)

 

实例化配置,另外单独使用一个配置文件

import hashlib,time
?
class DebugConfig(object):
   DEBUG = True
   SECRET_KEY = "#$%^&*($#$%^&*%$#$%^&*^%$#$%"
   PERMANENT_SESSION_LIFETIME = 3600   #失效时间 单位是秒
   SESSION_COOKIE_NAME = "I am Not Session" #存放在浏览器cookie中的session的名字
?
?
class TestConfig(object):
   TESTING = True
   SECRET_KEY = hashlib.md5(f"{time.time()}#$%^&*($#$%^&*%$#$%^&*^%$#$%{time.time()}".encode("utf8")).hexdigest()
   PERMANENT_SESSION_LIFETIME = 360000
   SESSION_COOKIE_NAME = "#$%^&*($#$%^&*%$#$%^&*^%$#$%"

应用

run.py

#导入文件
app.config.from_object(TestConfig)

 

2.3蓝图 Blueprint (app01)

不能被run的Flask实例 不存在Config

蓝图文件

from flask import Blueprint
?
bp = Blueprint("app01",__name__)  #蓝图的名字
car_bp = Blueprint("app02",__name__,url_prefix="/car")  #url_prefix,访问地址的时候必须在路由前面加上/car才能访问
?
@bp.route("/add_user")
def add_user():
   return "添加用户"
?
@bp.route("/find_user")
def find_user():
   return "查看用户"
?
@bp.route("/drop_user")
def drop_user():
   return "删除用户"
?
@bp.route("/up_user")
def up_user():
   return "修改用户"

 

蓝图的应用

run.py

#蓝图导入
from *** import 蓝图名字
app.register_blueprint(bp)

 

2.4 特殊装饰器

@app.before_request
def be1():
   print("I am Be1")
   # return "第一个请求你就过不去" # 5种
?
@app.before_request
def be2():
   print("I am Be2")
   # return "第二个请求过不去了" # 5种
?
?
@app.after_request
def af1(res):
   print("I am af1")
   return res
?
?
@app.after_request
def af2(res):
   print("I am af2")
   return res

 

@app.before_request 在请求进入视图函数之前 做出处理

@app.after_request 在响应返回客户端之前,结束视图函数之后

be+af 请求生命周期: 正常 be1 - be2 - vf - af2 - af1 异常 be1 - af2 - af1 只要有响应返回 , af全部执行

以上是关于doraemon的python Flask框架 路由和配置的主要内容,如果未能解决你的问题,请参考以下文章

doraemon的python django框架的路由详解(国庆大更新)

doraemon的python django的中间件(国庆大更新)

python 初步认识Flask

Flask基础介绍

doraemon的python form组件(国庆大更新)

doraemon的python csrf校验(国庆大更新)