flask 路由和视图
路由设置的俩种方式
@app.route('/xxx')
def index():
return 'index'
------------------------------------------
def index():
return "index
app.add_url_rule('/xxx',None,index)
注意事项:
- 不要让endpoint重名
- 如果重名函数也一样要相同
参数
rule, url规则
view_func, 视图函数名称
endpoint=None, 名称, 用于反向生成url, 即: url_for('str')
methods=None, 允许的请求方式, 如: ["GET","POST"]
strict_slashes=None, 对url最后的/ 是否严格要求
redirect_to=None, 重定向 defaults=None, 默认值,使用defaults={'k':'v'}为函数提供参数
subdomain=None, 子域名访问
CBV
import functools
form flask import Flask,views
app = Flask(__name__) def wrapper(func): @functools.wraps(func)
def inner(*args,**kwargs):
return func(*args,**kwargs) return inner class UserView(view.MethodView):
methods = ['GET']
decorators = [wrapper,] def get(self,*args,**kwargs):
return "get"
自定义正则
from flask import Flask,url_for app = Flask(__name__) # 步骤一: 定制类
from werkzeug.routing import BaseConverter
class RegexConverter(BaseConverter):
def __init__(self, map, regex):
super(RegexConverter, self).__init__(map)
self.regex = regex def to_python(self, value):
"""
路由匹配时, 匹配成功后传递给视图函数中参数的值
"""
return int(value) def to_url(self, value)
"""
使用url_for反向生成URL时,传递的参数经过该方法处理,赶回的值用于生成URL中的参数
"""
val = super(RegexConverter, slef).to_url(value)
return val #步骤二: 添加到转换器
app.url_map.converters['reg'] = RegexConverter
"""
1. 用户发送请求
2. flask内部进正则匹配
3. 调用to_python(正则匹配的结果)方法
4. to_python方法的返回值会交给视图函数的参数
""" #步骤三 :使用自定义正则
@app.route('/index/<reg("\d+"):nid>')
def index(nid):
print(nid, type(nid)) url_for('index',nid=988) return "index" if __name__ == '__main__':
app.run()
flask 路由和视图的更多相关文章
- flask路由和视图和cookie
什么是路由 """ 客户端(例如web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例. 程序实例需要知道对每个URL请求运行那些代码,所以 ...
- python框架之Flask(2)-路由和视图&Session
路由和视图 这一波主要是通过看源码加深对 Flask 中路由和视图的了解,可以先回顾一下装饰器的知识:[装饰器函数与进阶] 路由设置的两种方式 # 示例代码 from flask import Fla ...
- Flask框架 之 路由和视图详解
路由+视图 我们之前了解了路由系统是由带参数的装饰器完成的. 路由本质:装饰器和闭包实现的. 路由设置的两种方式 来看个例子. @app.route('/index') def index(): re ...
- 一、Flask路由介绍
Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是So ...
- Flask即插视图与tornado比较
由于公司使用了Tornado框架和Flask框架,之前一直使用的都是Flask框架,已经对url下面紧跟着视图的写法很固执.刚开始接触Tornado框架,对于其url和视图分开的写法思想上无法转变.今 ...
- python Flask框架CBV视图
1.演示之前需要先写一个装饰器 # 装饰器 def wrapper(func): def inner(*args, **kwargs): print('操作函数%s之前' % func.__name_ ...
- Flask - 路由系统
目录 Flask - 路由系统 @app.route()装饰器中的常用参数 methods : 当前 url 地址,允许访问的请求方式 endpoint:反向url地址,默认为视图函数名(url_fo ...
- Flask基础(06)-->视图常用逻辑
Flask基础(06)-->视图常用逻辑 返回json 重定向:url_for 自定义状态码 返回json:在使用 Flask 写一个接口时候需要给客户端返回 JSON 数据,在 Flask 中 ...
- Flask路由系统
Flask路由系统 我们之前了解了路由系统是由带参数的装饰器完成的. 路由本质:装饰器和闭包实现的. 设置路由的两种方式 第一种: @app.route('/index') def index(): ...
随机推荐
- 初学HTML-8
video标签:播放视频 格式一:<video src=""> </video> video标签的属性: src:用于告诉video标签需要播放的视频地址. ...
- VUE页面刷新问题
1). location方式 location.reload() 缺点:刷新页面,卡白 2). router方式 this.$router.go(0) 缺点:同一问题,比一好点 3). provide ...
- 【读书笔记】iOS-软件测试与iOS测试
一,软件测试的类型. 1.软件测试按照测试类型,可以划分为:单元测试,集成测试和系统测试. 2.单元测试是指对软件系统中最小可测试单元进行的检查和验证. 3.集成测试,在iOS软件开发中,集成测试主要 ...
- python之socketserver ftp功能简单讲解
TCP协议中的socket一次只能和一个客户端通信,然而socketserver可以实现和多个客户端通信. 它是在socket的基础上进行了一层封装,底层还是调用的socket # 服务端 impor ...
- [iOS] KVC 和 KVO
开发iOS经常会看见KVO和KVC这两个概念,特地了解了一下. 我的新博客wossoneri.com link KVC Key Value Coding KVC是一种用间接方式访问类的属性的机制.比如 ...
- Django 添加mdia文件目录路径
1.settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2.urls.py from djan ...
- recovery 恢复出厂设置失败Data wipe failed
最近客户反馈,编译32位的android系统,在recovery中执行恢复出厂设置的时候失败了,失败的打印提升信息如下. Formatting /data... [ 2.191404] E:get_f ...
- [20170615]执行dbms_sqldiag.dump_trace看执行计划.txt
[20170615]执行dbms_sqldiag.dump_trace看执行计划.txt --//上午在想查看10053执行计划时使用包时出现如下提示: SCOTT@book> @ &r ...
- 通过DbVisualizer 工具运行DB2存储过程实现INSERT语句主键自增造数
1.需求简介 最近开发人员需要进行一批数据进行生产上SQL语句耗时过长问题的验证与优化.所以在性能测试库中批量建造数据,由于交易本身业务逻辑过于复杂以及需要各种授权,最后决定采用插表的方式完成. 2. ...
- python第八天)——购物车作业优化完成
发现之前的三级菜单代码有BUG现已经修改过来了 购物车程序:启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够, ...