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"]) 为什么要这么用?其中的工作原理我们知道 ...
随机推荐
- mongodb-mongotemplate进行地理坐标操作
因为项目中使用的springboot + mongotemplate, 所以还是需要mongotemplate的操作方式 首先建立一个bean: package com.iwhere.easy.tra ...
- linux xargs 命令详解
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从 ...
- ADB故障时的一些命令
开发中经常用到adb重启等操作,简单记录一下. 1.重启 adb kill-server adb start-server 2.显示版本号 adb version 3.显示已连接的设备 adb dev ...
- Hadoop+Hive 操作mongodb数据
Hadoop+Hive 操作mongodb数据 1.版本概述 hadoop-2.7.3.hive-2.2 下载响应的jar包:http://mvnrepository.com/,直接搜索想要的jar包 ...
- SQL Server Profiler小技巧——筛选请求
如果需要转载,请附上本文作者和原文链接:http://www.cnblogs.com/zeusro/p/4016228.html Microsoft SQL Server Profiler 是 SQL ...
- Mybatis之reflection包源代码解析(一)
一.序言 Mybatis作为ORM,实现了对象与关系数据库间的映射.Mybatis中的映射包含两个方面: 1.将对象中的值(parameterType所指定的对象)映射到具体的sql中,例如: & ...
- Intellij IDEA run coverage之覆盖率测试
Intellij IDEA run coverage之覆盖率测试 idea 的coverage + 我们自己写的测试用例.最后看一下,我们要测的代码有没有测试到,这是一个不错的提高代码质量的方法. i ...
- jquery appaend元素中id绑定事件失效问题
1. 在jquery中append元素,如果该元素中有id值并且绑定事件,那么该id事件会失效,必须刷新一下才能使用. 2.解决办法: 举例:如果在一个<div class="titl ...
- 左连接sql
<?php public function sumZong($id){ $sql =' SELECT * FROM vvt_league_user AS p Left join vvt_leag ...
- SQL Server删除表及删除表中数据的方法
删除表的T-SQL语句为: drop table <表名> drop是丢弃的意思,drop table表示将一个表彻底删除掉. 删除表数据有两种方法:delete和truncate. de ...
