flask第十三篇——url注意事项
先和大家说一下常用的请求方法
get:只是从服务器获取数据,不会对服务器的状态或数据产生任何影响;
get方法的参数是放在URL中传递的。
post:会对服务器的状态或数据产生影响;通过body形式进行数据传递。
现在如果我们希望只能通过get方法才能访问一个url(或者说调用一个函数)该怎么办呢?看下面的代码:
# coding: utf-8
from flask import Flask
from werkzeug.routing import BaseConverter
import flask
app = Flask(__name__) # type: Flask
app.debug = True
# 根目录
@app.route('/', methods=['GET'])
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
上面在app.route()中传入了一个methods参数,传的参数是数组(或元组),这样就对hello_world函数的访问进行了限制——只能使用get方法才能请求到。
或者你也可以在methods方法里传入两个参数methods=['GET', 'POST']这样该方法就可以通过两种方式请求到了。如果不传递methods参数,那么默认是只有GET方法的。
URL的唯一性
之前已经有朋友问到了,就是@app.route('/list/')这个装饰器里list后面的/是不是必须传的,其实大家可以自己试一下,现在我们新定义一个函数:
@app.route('/list')
def mylist():
return u'没有/的list'
然后访问该函数,可以看到当我们访问127.0.0.1/list/时是访问不到的:
但是我们访问127.0.0.1/list是可以访问到的:
但是如果我们这样写:
@app.route('/list/')
def mylist():
return u'有/的list'
我们访问127.0.0.1/list,我们发现也是可以访问到的,因为浏览器自动给你加上/(重定向)了。所以建议大家在定义url的时候都加上后面的斜杠/。
还有一点需要和大家说明,就是大家如果修改端口号app.run(port=2000)这种操作时,port后面传的端口号必须是Integer类型的,就是说必须是整型,这样传app.run(port='2000')是不对的。
请关注公众号:自动化测试实战,查看清晰排版
flask第十三篇——url注意事项的更多相关文章
- flask第七篇——URL与视图函数的映射
有兴趣的朋友可以添加微信公众号:自动化测试实战 今天开始就要进入正题了.大家都准备好了吧~ 代码提示 先和大家说个小知识点:有同学后台说输入flask代码pycharm不提示,现在告诉你一个解决方法: ...
- flask第二十三篇——模板【5】过滤器
请关注微信公众号:自动化测试实战 过滤器——format格式化 flaskDemo.py # coding: utf-8 from flask import Flask, render_templat ...
- Python开发【第十三篇】:jQuery(二)
http://www.bubuko.com/infodetail-1438296.html 处理完毕需要整理贴进来 Python之路[第十三篇]jQuery案例-Form表单&插件及扩展 ...
- 跟我学SpringCloud | 第十三篇:Spring Cloud Gateway服务化和过滤器
SpringCloud系列教程 | 第十三篇:Spring Cloud Gateway服务化和过滤器 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich. ...
- Spring Cloud第十三篇 | Spring Boot Admin服务监控
本文是Spring Cloud专栏的第十三篇文章,了解前十二篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Clo ...
- 解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译)
解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译) http://improve.dk/the-anatomy-of-row-amp-page-compre ...
- 第十三篇 Integration Services:SSIS变量
本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...
- Python之路【第十三篇】:jQuery -暂无内容-待更新
Python之路[第十三篇]:jQuery -暂无内容-待更新
- Python开发【第二十三篇】:持续更新中...
Python开发[第二十三篇]:持续更新中...
随机推荐
- sublime的一些插件
新安装的sublime缺少一些插件… 1.文件路径没有提示 ctrl+shift+p → install → autofilename 2..html后缀的文件中,使用快捷键!不能自动出现内容 ctr ...
- HAproxy的安装配置及动静分离
/////////////////////////////目录//////////////////////////////////////////一.安装HAproxy二.编写HAproxy启动脚本三 ...
- bootstrap系统学习
1.响应式中注意的内容: 一行(row)必须在.container中. col-xs- col-sm- col-md- col-lg- 列偏移 .col-md-offset-* 列排序 .col-md ...
- 谈一谈最近关闭的Kindle人论坛
最近Kindle圈子内最大的论坛“Kindle人”关闭了,倒也掀起了一阵小波澜.Kindle人论坛是K友圈子里比较著名的一个“Kindle资源分享论坛”,这么一说其实混了这么久网络,大家都知道这个论坛 ...
- Eclipse创建Maven聚合项目
整体架构图 1.新建父工程 新建maven父项目(用来管理jar包版本),使子系统使用同一个版本的jar包. File->New->Other->Maven Project,打包方式 ...
- HDU 5651 组合+逆元
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5651 题目意思我看了半天没读懂,一直以为是回文子串又没看见substring的单词最后看博客才知道是用给 ...
- iOS安全系列之 HTTPS
作者:Jaminzzhang 如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相 ...
- Ubuntu下压缩解压文件
一般来说ubuntu 下带有tar 命令,可以用来解压和压缩之用.但是我们经常要与win下用户打交道,所以要安装一些解压工具如:rar zip 等命令. 如果要需要用到zip工具那么可以: sudo ...
- 转载:left join和left semi join的联系和区别
1.联系 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join),而 left semi join 则属于 map ...
- navicat for mysql 导入SQL Server显示中文乱码解决办法
解决方法是在navicat里右击一个连接,选择连接属性,切换到高级选项卡,去掉“使用mysql字符集”前的对勾,在编码里选择utf-8