一、配置信息

app.run()的参数

参数1:host,如果我们不指定,默认值是127.0.0.1。参数2:port,如果我们不指定,默认值是5000。参数3:debug,调试模式,如果不指定,默认值是False。

如果设置为True,有两个好处:

如果在运行过程中,直接改动代码了,就不需要重新启动程序,只要Ctrl+S保存即可部署程序。

如果程序报错了,会有友情提示。

from flask import Flask

app = Flask(__name__)

@app.route('/hh')

def index():

print(1/0)

return "

this is index

"

if __name__ == "__main__":

app.run(host="127.0.0.1", port=5000, debug=True)

二、路由信息

1、在访问路由的时候指定参数

格式:@app.route(“/<类型:变量名>”)

常见的类型:

整数:int

小数:float

字符串:path(默认就是path)

"""

在访问路由的时候指定参数

- 格式:@app.route("/<类型:变量名>")

- 常见的参数类型

- 整数 int

- 小数 float

- 字符串 path 默认就是path

"""""

from flask import Flask

app = Flask(__name__)

# 接收一个整数

@app.route('/')

def get_intnumber(num):

return "the age is %s" % num

# 接收一个小数

@app.route('/')

def get_floatnumber(num):

return "the float is %s" % num

# 接收一个字符串

@app.route('/')

def get_pathnumber1(str1):

return "the path is %s" % str1

# 接收一个字符串

@app.route('/')

def get_pathnumber2(str1):

return "the path is %s" % str1

if __name__ == "__main__":

app.run(debug=True)

2、自定义参数类型(自定义转换器)

应用情况:

如果系统提供的int、flost、path等参数满足不了需求的时候,我们需要自定义。之所以int、float、path可以接收不同的数据类型,是因为系统已经提供好对应的转换器了。 自定义转换器的格式:

定义类,继承自BaseConverter。

重写init方法,接收来两个参数。

初始化父类成员变量,还有子类自己的规则。

将转换器类,添加到系统默认的转换器列表中。

"""

- 自定义转换器的格式:

- 1. 定义类,继承自BaseConverter。

- 2. 重写init方法。

- 3. 初始化父类成员变量,还有子类自己的规则。

- 4. 将转换器类,添加到系统默认的转换器列表中。

需求:只接收3位整数

"""""

from flask import Flask

from werkzeug.routing import BaseConverter

app = Flask(__name__)

# - 1. 定义类,继承自BaseConverter。

class MyRegexConverter(BaseConverter):

# 下面这样直接指定匹配规则,不够灵活,具体匹配什么规则应该交给路由

# regex = "\d{3}" # 仅匹配3位整数

# - 2. 重写init方法。接收两个参数

def __init__(self, map, regex):

# - 3. 初始化父类成员变量,还有子类自己的规则。

super(MyRegexConverter, self).__init__(map)

self.regex = regex

# - 4. 将转换器类,添加到系统默认的转换器列表中。

app.url_map.converters["haha"] = MyRegexConverter

# 匹配三位整数

# 使用haha(‘规则’),实际上是传递了两个参数,参数1:app.url_map,参数2:括号中写的正则表达式

@app.route('/')

def get_three_number(number):

return "the three number is %s" % number

# 匹配四位整数

@app.route('/')

def get_four_number(number):

return "the four number is %s" % number

# 匹配一个手机号

@app.route('/')

def get_phone_number(phone):

return "the phone is %s" % phone

if __name__ == "__main__":

app.run(debug=True)

三、给路由增加其他的访问方式

格式:@app.route(‘路径’, methods=[‘请求方式1’, ‘请求方式2’, …])常见的请求方式:

GET、POST、PUT、DELETE 注意点:如果不指定请求方式,那么默认支持的是GET。

"""

给路由增加其他的访问方式

- 格式:@app.route('路径', methods=['请求方式1', '请求方式2', ......])

- 常见请求方式:GET、POST、PUT、DELETE

"""

from flask import Flask

app = Flask(__name__)

@app.route('/', methods=['POST', 'GET'])

def hello_world():

return 'hello world Flask'

if __name__ == "__main__":

print(app.url_map)

app.run(debug=True)

参考链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。