flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构

2023-02-20,,

今日内容

1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数

from flask import Flask 

app=Flask(__name__)

#第一种方式
@app.route('/my_de')
def my_de():
return '黑河' #第二种方式
app.add_url_rule( '/my_detail' , view_func=my_de) if __name__== '__main__':
app.run(debug=True)

  允许请求进入的8种请求方式:

GET
POST
PULL
DELETE
OPTIONS

  methods = 可迭代对象 [ ] , ( , )

methods=['POST','GET']

  endpoint 路由Mapping 地址对应视图函数

  url_for 用来反向解析URL地址

  url_for(endpoint)

需要了解

strict_slashes=True #是否严格遵循路由匹配 ,默认值是True ,必须严格遵循
defaults={'nid':3} #默认路由由参数 -视图函数中必须有一个nid(key)的形参接收
redirect_to='/index' # 永久重定向 301 不进入视图函数, 直接跳转

  动态接收参数(重要,必须要记住)

@app.route('/get_img/<path>/<xixi>')

#这里我们接收参数必须要和路由中尖括号括起来的参数一致,否则会报错
def get_img(path,xixi): return f'儿砸儿砸,我是{xixi}'

  

Flask配置

1.Flask初始化配置
app=Flask(__name__)
1.template_folder='tem'    #指定模板存放路径,这里我们不写的话,默认是'templates'
2.static_folder='img3'    #指定静态文件的存放路径,默认是'static'
3.static_url_path = '/static' #指定静态文件访问路径
   4.static_host = None      #静态文件的存放服务器
   5.subdomain_matching = False #遵循子域名匹配 2.Flask对象配置
  app.config == app.default_config #查看默认配置 及 配置项 class OBJ(object):
  DEBUG=True
app.config.from_object(OBJ) #记住, from_object就是点出来的属性,他能加载各种环境,例如

  我在mysettings中创建了两个类

  mysettings.py

class Debugsetting(object):
DEBUG = True
SECRET_KEY = "#$%^&*$%^&*(%^&*(%^&*("
SESSION_COOKIE_NAME = "我都说了我不是Session"
JSONIFY_MIMETYPE = "application/javascript" class TestingSetting(object):
DEBUG = False
TESTING = True
SECRET_KEY = "我其实是正式环境的赛克瑞特钥匙"
SESSION_COOKIE_NAME = "SHIT"
JSONIFY_MIMETYPE = "application/json"

  在text.py中,代码如下

from mysetting import DebugSetting
from mysetting import TestingSetting # app.config.from_object(DebugSetting)
app.config.from_object(TestingSetting) @app.route("/index")
def index():
session["key"] = "value"
return render_template("index.html") app.run()

  此时,如果你app.config.from_object(debugsetting),加载的就是debug环境,要是textingsetting,就是test环境.

app.config['key'] = value

  如果你指定了content-type,但是浏览器识别不出来,他会给你下载下来,你手动打开,里面有你的代码

Flask  蓝图(Buleprint)

  app.py中

from flask import Blueprint

#我们理解buleprint为不能run的flask
实例化的对象 标识不能重复,但是必须有,否则就报错
user=Blueprint('user',__name) @user.route('/users')
def func1():
return '我是func1'

  如果你想在别的文件中引入,那么你需要注册这个蓝图

from app import user
from flask import Flask app=Flask(__name__) app.register_buleprint(user) if __name__ == '__main__':
app.run(debug=True)

  

  

  

flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构的相关教程结束。

《flask 第二章 endpoint重名 Flask路由 初始化配置 Falsk Config 蓝图+目录结构.doc》

下载本文的Word格式文档,以方便收藏与打印。