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开发[第二十三篇]:持续更新中...
随机推荐
- 阿里云centOS7.4 ftp连接不上的问题
首先查看是开启21端口 选择ECS-->安全组-->配置规则 增加21端口配置 配置如下
- 【转】TCP那些事(上,下)
TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获.关于TCP这个协议的细节,我还是推荐你去 ...
- HTML5如何做横屏适配
在移动端中我们经常碰到横屏竖屏的问题,那么我们应该如何去判断或者针对横屏.竖屏来写不同的代码呢. 首先在head中加入如下代码: 1 <meta name="viewport" ...
- Android程序的安装和打包
Android程序的安装和打包
- nmcli 使用记录---fatt
安装nmcli工具 yum install NetworkManager 使用语法 Usage: nmcli [OPTIONS] OBJECT { COMMAND | help } OBJECT g[ ...
- CentOS 6.5 x86_64升级内核到最新版2.6.32-696.1.1.el6.x86_64
安装keepaliver时内核版本不一致,会导致后来的keepalive安装完成后不能正常提供服务 [root@gmxfjr-dev17 ha]# ls /usr/src/kernels/2.6.32 ...
- 奔跑吧ansible笔记一(概述)
1.普通用户想使用sudo到root用户下执行一些有root权限的操作需要在被管理机器上做如下操作 1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命 ...
- Sql server日期函数操作
1.获取前一小时内的数据:DATEADD(HOUR,-1,GETDATE()),将"HOUR"替换成DAY,Month,YEAR就是前一天,前一月,前一年 2.获取日期部分,格式为 ...
- List根据某个字段(属性)去重
有时候自带的list.Distinct()去重并不能满足魔门的要求,比如以下情况 如果testList的Name相同则视为重复,则可以如下实现,比写循环语句简洁多了 testList.Where((x ...
- 利用Docker编译Hadoop 3.1.0
前言 为什么要使用Docker编译,请自行百度 操作系统环境:Centos 6.8 uname -r 内核版本:2.6.32-642.el6.x86_64 除非有把握否则不要在Centos6.8中直接 ...