路由和HTTP方法

from flask import Flask
app = Flask(__name__)
# 
# 路由用法
# 
@app.route('/')
def hello_world():
    # 这种方法再不传参的情况下可以使用,一般用在首页
    # 导航栏:http://127.0.0.1:5000
    return 'hello world!!!'

@app.route('/hello')
def hello_world1():
    # 导航栏访问:http://127.0.0.1:5000/hello
    return 'hello world!!!'

@app.route('/hello/<name>')
def hello_world2(name):
    # 这里可以传递一个参数
    # 导航栏访问:http://127.0.0.1:5000/hello/namejr
    return '{}, hello'.format(name)

@app.route('/hello/<int:num>')
def hello(num):
    # 可以指定参数的类型
    # 导航栏访问:http://127.0.0.1:5000/hello/88
    # 除了可以指定int(整形)之外,还可以指定:string(字符串,但值得注意的是不能够包含'/')、float(浮点型)、path(路径,与string的区别是这里可以包含'/')、uuid(uuid的字符串)
    # UUID是一种唯一识别码,其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。(来源百度百科)
    return '{} is a number'.format(num)

 关于url_for:

from flask import Flask, url_for
app = Flask(__name__)
# 
# 关于url_for
# url_for用来可以直接获取对应函数名的路由路径
# 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径
# 
@app.route('/')
def index():
    return url_for('hello')  # 打印"/hello"

@app.route('/hello')
def hello():
    return "hello True"

if __name__ == '__main__':
    app.debug = True
    app.run()

我们可以使用test_request_content(test_request_content是一个用服务器来模拟用户发送请求的函数,实际上并没有用户发送数据)来测试一下

from flask import Flask, url_for
app = Flask(__name__)
# 
# 关于url_for
# url_for用来可以直接获取对应函数名的路由路径
# 这样的好处就是不管你如何更改路径,只要函数名没有改变,使用url_for都能够直接的获取对应的路径
# 
@app.route('/')
def index():
    return url_for('hello')  # 打印"/hello"

@app.route('/hello/')
def hello():
    return "hello True"

# 构建模拟情景
with app.test_request_context():
    print(url_for('index'))  # 打印"/"
    print(url_for('hello'))  # 打印"/hello/"

if __name__ == '__main__':
    app.debug = True
    app.run()

顺带一提:在编写路由的时候,你可以写成"@app.route('/hello/')",当然也可以写成"@app.route('/hello')",但是我最终建议还是写成前者,如果你访问的是"http://127.0.0.1:5000/hello",那么都可以访问,但是如果访问的是"http://127.0.0.1:5000/hello/"那么后者将会报出404("Not Found")错误,不信你试试,反正我试过了

PS:路由,不就是装饰器嘛

HTTP

原文地址:https://www.cnblogs.com/namejr/p/10290004.html