• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Flask框架路由和视图用法实例分析

python 搞代码 4年前 (2022-01-07) 30次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了Flask框架路由和视图用法,结合实例形式分析了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保存即可), 并且报错后会有相应提示

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.编写方法, init def __init__(self,map,regex): # 3.初始化, 父类, 子类变量 super(MyRegexConverter, self).__init__(map) self.regex = regex app = Flask(__name__) # 4.将自定义转换器添加到,系统默认的转换列表中 app.url_map.converters["re"] = MyRegexConverter print(app.url_map.converters) # 接收三位整数 # 通过re调用的init方法, 参数1[默认]: app.url_map, 参数2: 自己定义的规则 @app.route('/') def hello_world(number): return "the re number is %s"%number # 接收四位整数 @app.route('/') def get_four_number(number): return "the four number is %s"%number # 接收手机号 @app.route('/') def get_mobile_number(mobile): return "the mobile number is %s"%mobile if __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,redirect app = Flask(__name__) # 京东, 代号111 @app.route('/jingdong') def jingdong(): #print(url_for("taobao")) #/taobao # print(url_for("taobao",token=111)) #/taobao/111 response = 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/') def taobao(token<b style="color:transparent">来源gao@dai!ma.com搞$代^码网</b>): #判断哪个平台过来的用户 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框架路由和视图用法实例分析的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Flask框架路由和视图用法实例分析

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址