Flask配置文件和 路由系统
debug = True开启debug模式 当你的代码在界面增减之后不用刷新界面自动更新
app.logger.error("这是error模式")
app.logger.info("这是info模式")
app.logger.debug("这是debug模式")
生产环境中一般都是用error模式
methods
我们可以在路由中设置你的methods就是你的路由所支持的所有的请求类型,默认的是get请求 如果你想要修改支持其他请求 也必须要带上get请求
@app.route("/",methods=["post","get"]) #methods是表示支持的请求类型默认是get
def index():
return "您好"
|
request.query_string |
表示你的url中的所有的数据 |
| request.form | 请求体中的数据在form中 |
配置文件:
因为你的主分区的功能会有很多那么你的所有的定义都放入其中吗?NO,我们可以把一起配置放入一个文件内 然后导入进来使用增加解耦性
你的配置文件放在的文件中需要是一个类中
设置你的配置文件
class Settings(object):
DEBUG = True SECRET_KEY = "dasb" SERVER_NAME = "www.baidu.com:9980"
导入你的配置文件用:app.config.form_object(你的配置文件)
from settings import Settings,STUDENT_DICT #导入你的 配置文件 app = Flask(__name__)# 实例化一个flask对象
app.config.from_object(Settings) # 配置你的导入的文件中的类 这个类中放置的是你的配置信息
app.secret_key = "" # 开启你的session 给你的session赋值 开启session
from flask import Flask,render_template
from one.settings import Settings,dict # 导入配置文件类 同时也要导入你的配置文件类中的要引用的内容 不然无法使用 app = Flask(__name__)
app.config.from_object(Settings) #接收你的配置文件 @app.route("/")
def one():
return "hello world" @app.route("/set")
def set():
return str(dict) # 使用你的配置文件类中的内容 if __name__ == "__main__":
app.run("127.0.0.1",9867,debug = True)
然后你的 setting的配置中的类中的信息 不需要再次进行导入就可以直接使用了 这样相当于已经把信息导入了进行
今天我们就来了解下 什么是Flask的路由系统
Falsk的路由系统其实我们并不陌生就是在你的请求执行的函数上加上一个类似于装饰器的路由
@app.route("要请求的url")
@app.route("/",methods=["POST","GET"])
这个就类似于一个装饰器把你的函数给包裹了 但是这个也是你的路由的写法,methods是你的允许请求的方式 默认为GET
路由的匹配模式:strict_slashes 可以修改这个模式让它是严格模式还是一般模式
@app.route("/index/",strict_slashes= True) # strict_slashes是严格匹配模式 就是你的url信息如果这里面输入的是什么浏览器也要是什么 必须是和这个一致 一个/ 都不能少
如果你的strict_slashes事等于True然后你的请求的url后面没有加上/那么会一直报错 因为你的浏览器会默认补上那个后面的/
url别名:endpoint 给你的url地址起一个别名,url_for反向生成一个url 可以通过url_for()来反向查找这个别名
@app.route("/index/",strict_slashes= True,endpoint="r_index")
可以通过url_for()来打印这个别名 反向生成
from flask import url_for #导入url_for
@app.route("/index/",strict_slashes= True,endpoint="r_index")
def index():
print(url_for("r_index")) #/index/
btn = "<a href='/add_stu'>添加信息</a>"
btn = Markup(btn)
return render_template("index.html",stu=STUDENT_DICT,btn = btn)
url_for:
@app.route("/")
def one():
url = url_for("set") # 找到你的对应的方法的路径
return "hello world"+url #然后把这个路径也给返回出去
@app.route("/seet")
def set():
return str(dict) # 使用你的配置文件类中的内容
显示的就是:

就把你的获取的这个方法url给显示出来
defaults : 视图函数的参数默认值{"nid":1}
@app.route("/index/",strict_slashes= True,endpoint="r_index",defaults={"nid":100})
def index(nid): # 这里必须要接收你的defaults内传递进来的参数
print(nid) #打印这个参数
btn = "<a href='/add_stu'>添加信息</a>"
btn = Markup(btn)
return render_template("index.html",stu=STUDENT_DICT,btn = btn)
redirect_to : url地址重定向
@app.route("/index/",strict_slashes= True,endpoint="r_index",defaults={"nid":100},redirect_to="/index_to/") # redirect_to 跳转到你的这个后面输入的url
def index(nid): # 这里必须要接收你的defaults内传递进来的参数
print(nid) #打印这个参数
btn = "<a href='/add_stu'>添加信息</a>"
btn = Markup(btn)
return render_template("index.html",stu=STUDENT_DICT,btn = btn)
@app.route("/index_to/",strict_slashes=True) #严格匹配模式
def index_one():
return "二狗子"
动态参数路由:
@app.route("/info/<int:nid>",endpoint="r_info")
def info(nid):
print(nid)
print(url_for("r_info",nid=1)) #反向生成的时候也要给一个值
return "动态参数"
Flask配置文件和 路由系统的更多相关文章
- 11.2 Flask 配置文件,路由系统
配置文件系统 构建 Flask 应用时指定 app = Flask( __name__, template_folder = '', # 指定存储模板文件夹名称 static_url_path = ' ...
- 第一篇 Flask基础篇之(配置文件,路由系统,模板,请求响应,session&cookie)
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...
- 第六篇 Flask中的路由系统
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- flask配置文件、路由设置、模板语法、请求与响应、session使用、闪现功能(flash)
今日内容概要 flask 配置文件 flask 路由系统 flask模板语法 请求与相应 session 闪现(flash翻译过来的) 内容详细 1.flask 配置文件 # django ---&g ...
- Flask 中的路由系统
基本用法 Django的路由系统url集中在一起,而Flask的路由系统以装饰器的形式装饰在视图上如: @app.route("/",methods=["GET" ...
- python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)
昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的ru ...
- 第七篇 Flask 中路由系统以及参数
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- Flask最强攻略 - 跟DragonFire学Flask - 第七篇 Flask 中路由系统
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST" ...
- 7,Flask 中路由系统
Flask中的路由系统 @app.route("/",methods=["GET","POST"]) 为什么要这么用?其中的工作原理我们知道 ...
随机推荐
- R语言运算符
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作. R语言丰富的内置运算符,并提供以下类型的运算符. 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 ...
- 正确的C++/C堆栈
在理解C/C++内存分区时,常会碰到如下术语:数据区,堆,栈,静态存储区,静态区,常量区,常变量区,全局区,字符串常量区,静态常量区,静态变量区,文字常量区,代码区等等,初学者被搞得云里雾里.在这里, ...
- Node.js最新Web技术栈(2016年4月)
Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见<全栈工程师之路-Node.js>,里面讲了No ...
- 【设计模式】工厂模式 Factory Pattern
1)简单工厂(不是模式) 简单工厂只是一种变成习惯,并非23种设计模式之一. 简单工厂提供将实例话那种类型留给运行时判断,而非编译时指定.简单工厂模式就是由一个工厂类根据传入的参数决定创建出哪一个类的 ...
- redis集群与分片(1)-redis服务器集群、客户端分片
下面是来自知乎大神的一段说明,个人觉得非常清晰,就收藏了. 为什么集群? 通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取.Redis是一个很好的Cache工具.大型 ...
- ruby冒泡算法删除店铺下的重复评论
Shop.each do |shop| if !shop.comments.blank? n = shop.comments.length for i in 0..n-1 for j in i+1.. ...
- Linux skbuff注释笔记
SKB结构定义 /usr/src/linux/include/linux/skbuff.h sk_buff_head: struct sk_buff_head { //SKB的头结点 /* The ...
- api.openWin
打开window 若 window 已存在,则会把该 window 显示到最前面,如果 url 和之前的 url 有变化,或者 reload 为 true 时,页面会刷新,但是该 window 里面已 ...
- Ajax中的同步和异步
var flag=true; ; $.ajax({ url: "http://www.jb51.net/", success: function(data){ flag=false ...
- 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用
一.文档资料 1.官方网站:http://www.rabbitmq.com/ 2.安装教程:http://www.rabbitmq.com/install-windows. ...
