flask中的重定向,渲染,反转视图函数
在学习flask中,重定向,渲染,反转老是不怎么明白,今天明白了其中的点了,来给大家分享下
rend_templete()这个函数就是一个渲染的作用,渲染html的东西。
url_for是反转视图函数的,比如
@app.route('/') def index():
return "this is a page"
url_for通过index函数返回的是/页面,注意返回的是一个路由,是在定义好的路由的页面返回 / 的是一个路由,可以用print(url_for('index')) 结果应该是/
而重定向,重定向可以配合着url_for()进行使用,这样的话,大家可以思索下,为什么是配合着url_for而不是直接跳转到路由的地方
解答:
以后项目需要改路由的时候,直接改路由就好了,不需要改内置函数,这样比较方便。
在写路由的时候,我们可以看到路由中有变量的操作,这样对变量的操作,是否可以加一个限制?可以的,
比如,写进去一个id,设置一个int类型。
@app.route('/')
def index():
return "this is a page" @app.route('/detail/<int :id>/')
def detail(id):
return "%s "% id
这个来自于flask手册的内容
int | 接受整数 |
float | 同 int ,但是接受浮点数 |
path | 和默认的相似,但也接受斜线 |
我们也可以自定义一个限制的变量
from werkzeug.routing import BaseConverter
#导入一个BaseConverter,可以按住ctrl+鼠标左键点进去看看。
#再声明一个类继承BaseConverter,继承之后再把这个规则添加上就可以了 class TelephoneConvert(BaseConverter): regex = r'1[456]\d{9}' #regex是一个正则匹配的东西,想研究的可以百度搜索下 #把规则添加到BaseConverter中去
app.url_map.converters['tel'] = TelephoneConvert #下面做个测试
@app.route('/telephone/<tel:my_tel>/')
def tel(my_tel):
return "the telephone is %s" %my_tel
这个例子就很好的说明了,在开发的时候是可以自定义一个类进行添加的,后面会遇到传递参数的问题,其实传递参数也不难,要一开始就理解flask中url变量这个知识点,理解透了自然就懂了。关键点就是参数传递,传递时候在return rend_templetes or url_for or redirect后面加上就行了。
补充一些零碎的东西:
1.当想要设置成内网访问的时候,需要在app.run()里面加上host = '0.0.0.0'
2.如果想要更改端口,那么再加上port='端口号'。注意修改端口启动的时候,不要以flask自带的run,进行启动,在终端中用 python app.py 中启动。这样启动的结果就会以你想要的端口号进行启动了。
3.可以设置一个dubug = True,这样flask进行调试的时候,就不需要每次都关闭再重新进行启动了。
----------------------------------------再次补充----------------------------------------------------------------------------------------------
平常用的重定向是redirect()暂时性重定向,还有一个是永远重定向。暂时性重定向是302,永远重定向是301。我会了之后再进行补充。
flask中的重定向,渲染,反转视图函数的更多相关文章
- flask中url_for使用endpoint和视图函数名
在flask中,使用url_for 进行路由反转时,需要传递一个endpoint的值,用法如下: @app.route('/', endpoint='my_index') def index(): r ...
- Flask从入门到精通之在视图函数中处理表单
在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据.更新后的index() 视图函数如下: @app.route('/') def index(): name = ...
- Flask实战第6天:视图函数Response返回值
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...
- flask第七篇——URL与视图函数的映射
有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...
- 6、Flask实战第6天:视图函数Response返回值
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...
- flask中用类的方式构造视图函数
from flask import Flask from flask.views import MethodView app = Flask(__name__) class IndexView(Met ...
- Django之views视图函数
views视图函数属于MTV中逻辑处理的部分视图函数包含着两个对象,HttpRequest对象和HttpResponse对象 一.HttpRequest对象 HttpRequest对象在Django中 ...
- 转载 Flask中客户端 - 服务器 - web应用程序 是如何处理request生成response的?
文章转载自https://blog.csdn.net/weixin_37923128/article/details/80992645 , 感谢原作者 当客户端向服务器发送一个请求时,服务器会将请求转 ...
- flask中请求勾子
请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: *在请求开始时,建立数据库连接; *在请求开始时,根据需求进行权限校验; *在请求结束时,指定数据的交互格式; 为了让每 ...
随机推荐
- 高清DEM最高立减1500元!
选购攻略: 活动一:选购12.5米DEM(地形)数据.30米 DEM(地形)数据,满500元立减100元.满1000元立减200元.满2000立减500元.满5000元立减1500元:每位用户仅可享受 ...
- Oracle(第二天)
一.外键(foreign key):constraint , refenerces 例如:sno number(7) constraint fk_sno references student(sno) ...
- SPI的学习和ESP8266的SPI通讯测试
SPI简介: SPI是串行外设接口(Serial Peripheral Interface)的缩写.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时 ...
- Spider_基础总结5--动态网页抓取--元素审查--json--字典
# 静态网页在浏览器中展示的内容都在HTML的源码中,但主流网页使用 Javascript时,很多内容不出现在HTML的源代码中,此时仍然使用 # requests+beautifulsoup是不能够 ...
- tcp输入数据 慢速路径处理 && oob数据 接收 && 数据接收 tcp_data_queue
大致的处理过程 TCP的接收流程:在tcp_v4_do_rcv中的相关处理(网卡收到报文触发)中,会首先通过tcp_check_urg设置tcp_sock的urg_data为TCP_URG_NOTYE ...
- 在linux下,为什么 i386 ELF可执行文件默认从地址(.text)0x08048000开始分配。 而 x64是0x400000
- kafka生产者数据可靠性保证
为保证 producer 发送的数据,能可靠的发送到指定的 topic,topic 的每个 partition 收到 producer 发送的数据后,都需要向 producer 发送 ack(ackn ...
- 适合 Go 新手学习的开源项目——在 GitHub 学编程
作者:HelloGitHub-小鱼干&卤蛋 故事要从 2007 年说起.因为受够了 C++ 煎熬的 Google 首席软件工程师 Rob Pike 召集 Robert Griesemer 和 ...
- Python_Tips_dump\load 和 dumps\loads 的区别与联系
dump\load 和 dumps\loads 的区别与联系 """ Python3 JSON模块的使用 参考链接:https://docs.python.org/3/ ...
- windbg 分析cpu异常
1. !threadpool 查看当前CPU状况 线程数等等 2. !runaway 查看那几个线程使用的高 建议多抓几个dump 然后确定到底是哪个线程 3. ~线程IDs 跳转到那个 ...