2、Flask实战第2天:URL传参
当我们访问网站/的时候,会执行hell_world函数,并把这个函数的返回值返回给浏览器,这样浏览器就显示hello world了
@app.route('/')
def hello_world():
return 'Hello World!'
按照这种映射关系,我们可以再写一个,比如文章列表
@app.route('/article_list/')
def article_list():
return 'Article list'
这样,我们访问127.0.0.1:5000/article_list/的时候,浏览器就会显示Article list

那么我们要如何给url传参呢?
比如我们来写个文章详情页
@app.route('/article/<article_id>/') #我们在<>里面写参数名article_id
def article_detail(article_id): #这里的参数名要和上面的一致,即article_id
return '您请求的文章是:{}'.format(article_id)
访问http://127.0.0.1:5000/article/1/

限定参数数据类型
可以对参数限定数据类型,比如上面的文章详情,限定article_id必须为整数型
@app.route('/article/<int:article_id>/')
def article_detail(article_id):
return '您请求的文章是:{}'.format(article_id)
这样当我们传递的参数是int类型的时候才能正常访问,其他类型都会返回404
类型可以设置提下几种:
string: 默认的数据类型,接收没有任何斜杠"\ /"的文本
int: 整数形
float: 浮点型
path: 和string类似,但是接受斜杠
uuid: 只接受uuid字符串
any: 可以指定多种路径,比如以下例子
@app.route('/<any(article,blog):url_path>/<id>/')
def item(url_path, id):
if url_path == 'article':
return '文章详情:{}'.format(id)
else:
return '博客详情:{}'.format(id)
?key=value形式传参
上面我们接受参数使用的是path形式,下面我们来使用查询字符串的形式,即?key=value
如果有多个参数,则用&来拼接: ?key1=value1&key2=value2
from flask import Flask, request
... @app.route('/d/')
def d():
wd = request.args.get('wd')
return '您传递的参数是: {}'.format(wd)

如果你的页面想做SEO优化,就是被搜索引擎搜索到,那么推荐使用path形式
如果无所谓,可以使用查询字符串方式
提醒
在定义url的时候,一定记得在最后加一个斜杠,
1、如果不加斜杠,那么在浏览器中访问这个url的时候最后加了斜杠,那么就访问不到了,用户体验不好
2、搜索引擎会将不加斜杠的和加斜杠的视为不同的url,而实际上是同一个,那么会给浏览器造成一个误解,加了斜杠就不会出现斜杠的问题
2、Flask实战第2天:URL传参的更多相关文章
- Django(五)1 - 4章实战:从数据库读取图书列表并渲染出来、通过url传参urls.py path,re_path通过url传参设置、模板语法
一.从数据库读取图书数据并渲染出来 1)app1/views.py函数books编写 [1]从模型下导入bookinfo信息 [2]从数据库获取图书对象列表 [3]把获取到的图书对象赋值给books键 ...
- 点击div 跳转并通过URL传参
点击div前要先给div绑定要传的参数: //给panel绑定自定义属性,方便在跳转时传带参数,键/值对排列 panel.attr("user_age",user_age); pa ...
- 关于url传参中文乱码问题
之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题.所以一直没有了解中文乱码的问题. 问题描述: 地址: http://localhost:8080/sun-government/c ...
- Silverlight项目笔记8:层次布局、客户端读取shp、ExecuteCountAsync、柱状图、url传参
1.层次布局 由于地图窗口和菜单栏都在一个父容器内,在浏览器缩小到一定程度点击地图弹出infoWindow时,会出现菜单栏遮挡infoWindow中间部分的现象,于是通过设置Canvas.ZIndex ...
- 浏览器URL传参最大长度问题
这几天为解决一个BUG头疼了一段时间,BUG现象如下: 一个选择人员的选择控件,当选择多个人时(50多个的时候),返回没有错误现象,而再一次打开的时候就报404错误.看到这个错误非常纳闷,无法下手,只 ...
- 关于微信浏览不能URL传参,URL中的问号被删除
关于微信浏览不能URL传参,URL中的问号被删除. 尼玛难道没有人遇到过这个问题?看了微信支付SDK3.0的代码,看到urlencode 看到了几次.实际上 在微信浏览器下 header('locat ...
- url传参后获取参数
当我们通过url传参跳转到其他页面,如: http://www.xxx.com/content.html?id=217&name=txf&phone=15829087165 在跳转后的 ...
- url传参中文乱码解决
url传参request.setCharacterEncoding("utf-8");无法解决中文乱码问题 解决方法: 修改tomcat---conf----server.xml文 ...
- URL传参时中文参数乱码的解决方法
URL传参时,中文参数乱码的解决: 今天在工作中遇到了这样的一个问题,在页面之间跳转时,我将中文的参数放入到url中,使用location进行跳转传参,但是发现接收到的参数值是乱码.我的代码是这样写的 ...
随机推荐
- CodeForces743E. Vladik and cards 二分+状压dp
这个题我们可以想象成_---___-----__的一个水柱它具有一遍优一遍行的性质因此可以用来二分最小值len,而每次二分后我们都要验根,we可以把这个水柱想成我们在每个数段里取前一段的那个数后一段有 ...
- 手把手教你通过Eclipse工程配置调用JNI完全攻略
本文地址:http://www.cnblogs.com/wavky/p/JNI.html 当你找到并鬼使神差地打开这个博文的时候,我敢肯定你已经知道什么是JNI,基本概念就不粘贴了. 百度出来的JNI ...
- EditPlus直接连接Linux服务器编辑文本文件
填写好:描述,ip地址,用户名,密码, 然后点下面的高级选项: 然后返回上一个页面,继续 确定 OK: 然后,在主界面左侧点倒三角: 就可以选择我们之前配置的远程服务器地址,弹出提示框 点确定, 就连 ...
- 修改innodb_flush_log_at_trx_commit参数提升insert性能
最近,在一个系统的慢查询日志里发现有个insert操作很慢,达到秒级,并且是比较简单的SQL语句,把语句拿出来到mysql中直接执行,速度却很快. 这种问题一般不是SQL语句本身的问题,而是在具体的应 ...
- POJ - 1017 贪心训练
Packets Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 59725 Accepted: 20273 Descrip ...
- 工作总结-js插件
因最近工作需要,使用了一些js插件,感觉还不错,记录下来以便以后使用. 1.图片轮播插件: 扩展:梦想天空系列:http://www.cnblogs.com/lhb25/archive/2013/01 ...
- angular js的Inline Array Annotation的理解
inline Array annotation的形式是: someModule.controller('MyController', ['$scope', 'greeter', function($s ...
- 动态规划&字符串:最长公共子串
还是直接上转移方程: 动规只能解决O(n^2)的最长公共子串问题 使用后缀数组或者SAM可以高效地解决这个问题 所以,对于这个问题,动规的代码就不给出了 直接给出SAM的实现,也为以后学习SAM打下一 ...
- 【BZOJ2301】【HAOI2011】Problem b [莫比乌斯反演]
Problem b Time Limit: 50 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 对于给出的n个询问,每次 ...
- 汕头市队赛 yyl杯1 T1
A SRM 05 - YYL 杯 R1 背景 傻逼题 描述 给一个序列,序列里只有两种元素1和2.现在要从序列里选出一些非空子序列使得子序列里两种元素数量相同.问有多少种方案数? 输入格式 多组数据 ...