在学习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中的重定向,渲染,反转视图函数的更多相关文章

  1. flask中url_for使用endpoint和视图函数名

    在flask中,使用url_for 进行路由反转时,需要传递一个endpoint的值,用法如下: @app.route('/', endpoint='my_index') def index(): r ...

  2. Flask从入门到精通之在视图函数中处理表单

    在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据.更新后的index() 视图函数如下: @app.route('/') def index(): name = ...

  3. Flask实战第6天:视图函数Response返回值

    视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...

  4. flask第七篇——URL与视图函数的映射

    有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...

  5. 6、Flask实战第6天:视图函数Response返回值

    视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...

  6. flask中用类的方式构造视图函数

    from flask import Flask from flask.views import MethodView app = Flask(__name__) class IndexView(Met ...

  7. Django之views视图函数

    views视图函数属于MTV中逻辑处理的部分视图函数包含着两个对象,HttpRequest对象和HttpResponse对象 一.HttpRequest对象 HttpRequest对象在Django中 ...

  8. 转载 Flask中客户端 - 服务器 - web应用程序 是如何处理request生成response的?

    文章转载自https://blog.csdn.net/weixin_37923128/article/details/80992645 , 感谢原作者 当客户端向服务器发送一个请求时,服务器会将请求转 ...

  9. flask中请求勾子

    请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: *在请求开始时,建立数据库连接; *在请求开始时,根据需求进行权限校验; *在请求结束时,指定数据的交互格式; 为了让每 ...

随机推荐

  1. JavaScript探秘:可执行的上下文堆栈

    这一系列的文章,挺不错的,值得收藏细读 JavaScript探秘:可执行的上下文堆栈

  2. 是什么让我节省了60%的编码时间?使用MBG

    MyBatis Generator简介 业务需求不断变更,数据库表结构不断修改,是我们逃不出的宿命.工欲善其事,必先利其器,是时候祭出神器了:MyBatis Generator(简称:MBG),它是一 ...

  3. 聊一聊sockmap 以及ebpf

    之前聊过tcpdump 抓包原理,tcpdump使用packet 抓包,使用packet_map 完成零拷贝.但是这个零拷贝也有点假,何为假呢?从网卡到内存走的dma,哪能不能直接从dma拷贝到用户空 ...

  4. brctl 增加桥接网卡

    前言 之前有一篇介绍配置桥接网卡的,这个桥接网卡一般是手动做虚拟化的时候会用到,通过修改网卡的配置文件的方式会改变环境的原有的配置,而很多情况,我只是简单的用一下,并且尽量不要把网络搞断了,万一有问题 ...

  5. git连接gitlab下载项目代码

    1.安装git 2.鼠标右键git bash here 3.命令行界面输入生成公钥命令 ssh-keygen -t rsa -C'gitlab用户名' 然后一直按enter键下一步生成公钥即可' 4. ...

  6. Spark3.0.1各种集群模式搭建

    对于spark前来围观的小伙伴应该都有所了解,也是现在比较流行的计算框架,基本上是有点规模的公司标配,所以如果有时间也可以补一下短板. 简单来说Spark作为准实时大数据计算引擎,Spark的运行需要 ...

  7. [COCI2016-2017#1] Mag

    [COCI2016-2017#1] Mag 题解 题目TP门 题目描述 你将获得一棵由无向边连接的树.树上每个节点都有一个魔力值. 我们定义,一条路径的魔力值为路径上所有节点魔力值的乘积除以路径上的节 ...

  8. CorelDRAW常用工具之渐变工具

    我们在进行宣传单页或者LOGO等等各种平面设计时,颜色的使用是极为重要的一方面.有些新手可能还不知道怎么填充多种颜色的渐变,有的背景色不止2个颜色渐变,而是由多种颜色调成的. 我们在画布上画两个图形, ...

  9. FL Studio乐理教程之调式音阶

    在我们使用FL制作音乐时,乐理是必不可少的制作基础,本篇教程将结合FL Studio为大家讲解基础乐理及在FL Studio20中的使用技巧. 添加一个乐器,打开Piano Roll(钢琴窗). 首先 ...

  10. css3系列之详解border-image

     border-image border-image呢,是给 边框加上背景图片的.没错,就是平常那一小小条的边框,也能加图片. 参数: border-image-source border-image ...