Flask框架——路由和视图
目录
- 创建一个简单flask框架程序
- 路由视图函数
- 参数加载方式
创建一个简单flask框架程序
#1.导入Flask类
from flask import Flask#2.创建Flask对象接收一个参数__name__,它会指向程序所在的包
app = Flask(__name__)#3.装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():return 'Hello World'#4.Flask应用程序实例的run方法,启动WEB服务器
if __name__ == '__main__':app.run()
1.Flask对象参数:
参数 | 描述 |
---|---|
name | (必写)代表程序主函数__main__ |
static_folder | 静态资源文件夹(默认static) |
static_url_path | 静态资源路径(默认/static) |
template_folder | 模板文件夹(默认templates) |
2.run方法参数:
参数 | 描述 |
---|---|
ip | IP地址 |
port | 端口 |
debug | 默认为False,更改为True可以不重启服务器进行服务器修改(ctrl+s保存即可), 并且报错后会有相应提示 |
路由视图函数
@app.route(“/路径”):路由装饰器,可以通过路径执行被装饰的函数
app.url_map:可查看当前路由函数和路径
1.动态参数:@app.route(“/路径/<类型:变量>”)
常用类型
类型 | 描述 |
---|---|
int | 整型 |
float | 浮点型 |
path | 字符串型 |
自定义类型:
(1)编写⾃定义转换器类,继承BaseConverter
(2)编写init⽅法
(3)初始化⽗类,⼦类变量
(4)将⾃定义转换器添加到默认转换器列表中
例:
from flask import Flask
from werkzeug.routing import BaseConverter#1.自定义类,继承自BaseConverter
class MyRegexConverter(BaseConverter):# 2.编写方法, initdef __init__(self,map,regex):# 3.初始化, 父类, 子类变量super(MyRegexConverter, self).__init__(map)self.regex = regexapp = Flask(__name__)# 4.将自定义转换器添加到,系统默认的转换列表中
app.url_map.converters["re"] = MyRegexConverterprint(app.url_map.converters)# 接收三位整数
# 通过re调用的init方法, 参数1[默认]: app.url_map, 参数2: 自己定义的规则
@app.route('/<re("\d{3}"):number>')
def hello_world(number):return "the re number is %s"%number# 接收四位整数
@app.route('/<re("\d{4}"):number>')
def get_four_number(number):return "the four number is %s"%number# 接收手机号
@app.route('/<re("1[3456789]\d{9}"):mobile>')
def get_mobile_number(mobile):return "the mobile number is %s"%mobileif __name__ == '__main__':app.run()
2.指定请求方式:
@app.route(“/路径”,methods=[“⽅式1”,”方式2”])
方式:GET(默认),POST,PUT,DELETE
3.视图函数返回内容:
(1)直接返回响应体对象:
返回响应体、状态码、响应头
return “hello”,”666”,{“name”:“zhangsan”}
(2)手动创建响应体对象:
response = make_response(“响应体”)
response.status = “状态码 状态码描述”
response.headers = {响应头键值对}
(response.headers[“Content-Type”] = “application/json”)
return response
(3)返回json:
jsonify(dict)
jsonify(key=value,key2=value2)
(4)重定向:
重定向:redirect(“路径”)
反解析:url_for(“函数”,key=value)
⼆者配合使⽤可以传递参数
例:
"""
url_for, 反解析,根据视图函数名称找到,视图函数的路径地址,可以携带参数
格式: url_for('函数名',key=value), 返回的是一个地址(字符串)"""""
from flask import Flask,url_for,redirectapp = Flask(__name__)# 京东, 代号111
@app.route('/jingdong')
def jingdong():#print(url_for("taobao")) #/taobao# print(url_for("taobao",token=111)) #/taobao/111response = redirect(url_for("taobao",token=111))return response#易迅, 代号222
@app.route('/yixun')
def yixun():response = redirect(url_for("taobao",token=222))return response@app.route('/other')
def other():response = redirect(url_for("taobao",token=888))return response# 淘宝
@app.route('/taobao/<int:token>')
def taobao(token):#判断哪个平台过来的用户if(token == 111):return "欢迎京东用户,光临淘宝,给你打9折"elif(token == 222):return "欢迎易迅用户,光临淘宝,给你打5折"else:return "其他用户"if __name__ == '__main__':app.run()
4.异常处理:
(1)抛出异常(abort):
abort(code)
code为HTTP错误状态码
(2)异常捕获(errorhandler):
code为HTTP错误状态码
@app.errorhandler(code)
def fun():
…
参数加载方式
1.从类中加载:app.config.from_object()
例:
class Config(object):#调试模式DEBUG=True
app.config.from_object(Config)
2.从配置⽂件中加载:app.config.from_pyfile()
例:
app.config.from_pyfile("config.ini")
3.从环境变量加载(了解):
app.config.from_envvar()
Flask框架——路由和视图相关推荐
- python flask 路由_python框架之Flask(2)-路由和视图Session
路由和视图 这一波主要是通过看源码加深对 Flask 中路由和视图的了解,可以先回顾一下装饰器的知识:[装饰器函数与进阶] 路由设置的两种方式 #示例代码 from flask importFlask ...
- Flask框架——路由:URL规则与视图函数
1. 概述 路由 是MVC架构的Web框架中相当重要的一个概念,也是本节课程的重点.顾名思意,路由就是在迷茫中找出一条路的意思.在Flask框架中,路由 就表示为用户请求的URL找出其对应的处理函数之 ...
- flask html 模板继承,Flask框架模板继承实现方法分析
Flask框架模板继承实现方法分析 本文实例讲述了Flask框架模板继承实现方法.分享给大家供大家参考,具体如下: 在模板中,可能会遇到以下情况: 多个模板具有完全相同的顶部和底部内容 多个模板中具有 ...
- Flask框架(1.flask概述,Windows配置 virtualenv虚拟环境步骤和路由以及视图函数的定义)
框架: 软件框架,指的是为了实现某个业界标准或者完成特别基本任务的软件组件规范,也指为了实现某个软件组建规范时,提供规范所要求之基础功能的软件产品. 框架的功能类似于基础设施,提 ...
- flask框架视图和路由_角度视图,路由和NgModule的解释
flask框架视图和路由 Angular vs AngularJS (Angular vs AngularJS) AngularJS (versions 1.x) is a JavaScript-ba ...
- flask(一)之路由和视图
01-介绍 Flask 是一个 Python 实现的 Web 开发微框架,同时具有很强的扩展能力. 02-第一个flask程序 # 初始化from flask import Flask, url_fo ...
- flask -- 路由与视图函数
原文链接 1. 概述 路由 是MVC架构的Web框架中相当重要的一个概念,也是本节课程的重点.顾名思意,路由就是在迷茫中找出一条路的意思.在Flask框架中,路由 就表示为用户请求的URL找出其对应的 ...
- flask --- 路由与视图函数
1.概述 路由是Model View Controller架构的Web框架中的相当重要的一个概念.路由就是在迷茫中找出一条路的意思.在Flack框架中,路由表示为用户请求的URL找出其对应的处理函数的 ...
- Flask框架(一)flak视图和URL
1.虚拟环境: 1.1 为什么需要虚拟环境 为了方便实现多套不同开发版本的维护. 到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你 ...
最新文章
- GPT-3:现实版的“贾维斯”?还是真「人工」智能?
- 树结构有什么好处_什么啊?面试官还在问HashMap了,老知识点了啊
- 两台电脑通过usb共享网络_避开网络限制,通过蓝牙共享网络连接
- 一系列图论问题[转]
- 新发传染病临床案例研究 Emerging Infectious Diseases. Clinical Case Studies
- [原创]浅谈在创业公司对PMF的理解
- 字符串-文本对齐方法演练
- 如何离线安装chrome插件
- java 1..0 openjdk_java-1.7.0-openjdk-i386和java-7-openjdk-i386有什么区别
- 准程序员必看!该怎么规划自己的职业人生,看看前辈们给的建议!
- appium python unittest_appium+python+unittest自动化测试
- 在redis取数据若存在直接取,不存在在db中取,并放到缓存中
- xutils使用流程
- java 网络编程 总结篇
- 微信和qq默认表情代码对照表及表情文件下载
- OpenCore黑苹果引导配置说明-基于OpenCore-0.7.0-06-08正式版
- 如何利用ICEPAK进行热仿真分析,简单易学
- 常见反爬虫方法及其应对策略
- 字符串--------KMP算法(studying)
- mysql week weekofyear_MySQL WEEKOFYEAR()用法及代码示例