先和大家说一下常用的请求方法

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注意事项的更多相关文章

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

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

  2. flask第二十三篇——模板【5】过滤器

    请关注微信公众号:自动化测试实战 过滤器——format格式化 flaskDemo.py # coding: utf-8 from flask import Flask, render_templat ...

  3. Python开发【第十三篇】:jQuery(二)

    http://www.bubuko.com/infodetail-1438296.html 处理完毕需要整理贴进来 Python之路[第十三篇]jQuery案例-Form表单&插件及扩展   ...

  4. 跟我学SpringCloud | 第十三篇:Spring Cloud Gateway服务化和过滤器

    SpringCloud系列教程 | 第十三篇:Spring Cloud Gateway服务化和过滤器 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich. ...

  5. Spring Cloud第十三篇 | Spring Boot Admin服务监控

    本文是Spring Cloud专栏的第十三篇文章,了解前十二篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Clo ...

  6. 解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译)

    解剖SQLSERVER 第十三篇    Integers在行压缩和页压缩里的存储格式揭秘(译) http://improve.dk/the-anatomy-of-row-amp-page-compre ...

  7. 第十三篇 Integration Services:SSIS变量

    本篇文章是Integration Services系列的第十三篇,详细内容请参考原文. 简介在前一篇我们结合了之前所学的冒泡.日志记录.父子模式创建一个自定义的SSIS包日志记录模式.在这一篇,我们将 ...

  8. Python之路【第十三篇】:jQuery -暂无内容-待更新

    Python之路[第十三篇]:jQuery -暂无内容-待更新

  9. Python开发【第二十三篇】:持续更新中...

    Python开发[第二十三篇]:持续更新中...

随机推荐

  1. Memcached incr 与 decr 命令

    Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作. incr 与 decr 命令操作的数据必须是十进制的32位无符号整数. 如果 key 不存在 ...

  2. FlashFXP客户端 FTP连接,连接很慢的情况,

    菜单栏-->站点-->站点管理器--->左边视图FTP--->列表命令选择 STAT -L

  3. 【Python】更优的字符串格式化方式 -- "format"替代"%s"

    背景 前段时间看了一篇介绍Python的代码技巧的文章,建议格式化字符串时使用"format"代替使用"%",但是没有说明原因.各博客网站介绍相关用法的博客很多 ...

  4. Django框架学习笔记(windows环境下安装)

    博主最近开始学习主流框架django 网上大部分的安装环境都linux的 由于博主在windows环境下已经有了 Pycharm编辑器 ,所以决定还是继续在windows环境下学习 首先是下载 链接 ...

  5. 微信小程序------基本组件

    今天主要是简单的讲一下小程序当中的一些组件,微信文档上也是有的.但我还是坚持写一下,因为写博客可以再一次得到提高,印象更深刻,虽然很简单,但贵在坚持. 先来看看效果图: 1:进度条(progress) ...

  6. linux限定用户目录及权限

    setfacl -m u:username:rwx dir/file   -m:添加或者修改 u[设置用户]:username[用户名]:rwx[设置权限] g[设置组]:groupname[组名]: ...

  7. 明明白白AOP

    引子: AOP(面向方面编程:Aspect Oriented Programing)和IoC一样是Spring容器的内核,声明式事务的功能在此基础上开花结果.但是AOP和OOP差别较大,要很好地理解这 ...

  8. python2.7安装requests

    我这里的是linux CentOS7版本 直接执行命令pip install requests 安装即可,如果提示没有pip这个命令要先安装pip 安装步骤如下: 1. 首先检查Linux有没有安装P ...

  9. 防火墙---iptables

    一.iptables的说明及环境安装 (1)理论基础:当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或 ...

  10. c# 处理js序列化时 datetime返回UTC格式的问题

    using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...