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开发[第二十三篇]:持续更新中...
 
随机推荐
- Memcached incr 与 decr 命令
			
Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作. incr 与 decr 命令操作的数据必须是十进制的32位无符号整数. 如果 key 不存在 ...
 - FlashFXP客户端   FTP连接,连接很慢的情况,
			
菜单栏-->站点-->站点管理器--->左边视图FTP--->列表命令选择 STAT -L
 - 【Python】更优的字符串格式化方式 -- "format"替代"%s"
			
背景 前段时间看了一篇介绍Python的代码技巧的文章,建议格式化字符串时使用"format"代替使用"%",但是没有说明原因.各博客网站介绍相关用法的博客很多 ...
 - Django框架学习笔记(windows环境下安装)
			
博主最近开始学习主流框架django 网上大部分的安装环境都linux的 由于博主在windows环境下已经有了 Pycharm编辑器 ,所以决定还是继续在windows环境下学习 首先是下载 链接 ...
 - 微信小程序------基本组件
			
今天主要是简单的讲一下小程序当中的一些组件,微信文档上也是有的.但我还是坚持写一下,因为写博客可以再一次得到提高,印象更深刻,虽然很简单,但贵在坚持. 先来看看效果图: 1:进度条(progress) ...
 - linux限定用户目录及权限
			
setfacl -m u:username:rwx dir/file -m:添加或者修改 u[设置用户]:username[用户名]:rwx[设置权限] g[设置组]:groupname[组名]: ...
 - 明明白白AOP
			
引子: AOP(面向方面编程:Aspect Oriented Programing)和IoC一样是Spring容器的内核,声明式事务的功能在此基础上开花结果.但是AOP和OOP差别较大,要很好地理解这 ...
 - python2.7安装requests
			
我这里的是linux CentOS7版本 直接执行命令pip install requests 安装即可,如果提示没有pip这个命令要先安装pip 安装步骤如下: 1. 首先检查Linux有没有安装P ...
 - 防火墙---iptables
			
一.iptables的说明及环境安装 (1)理论基础:当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或 ...
 - c# 处理js序列化时 datetime返回UTC格式的问题
			
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...