一.app.run()方法
if __name__ == '__main__'
app.run(host="127.0.0.1",post=5001,debug=True)
参数1:host,地址,如果我们不指定,默认值为127.0.0.1
参数2:port,端口,如果我们不指定,默认值为5000
参数3:debug,True模式下,在代码运行的过程中科院通过保存代码直接部署程序,且程序报错时网 页会出现友情提示
二.动态参数类型
在访问路由的时候指定参数格式:@app.route(’/<类型:变量名>’)
@app.route('/<int:age>')#整数参数
def get_int(age):
return "this int is %s"%age
----------------分割线--------------------
@app.route('/<float:number>')#浮点型数参数
def get_float(number):
return "this float is %s"%number
----------------分割线--------------------
@app.route('/<path:word>')#字符串参数
def get_path(word):
return "this path is %s"%word
三.自定义参数类型(自定义转换器)
自定义转换器格式:
1.定义类,继承自BaseConverter
2.重写init方法
3.初始化父类成员变量,还有子类自己的规则
4.将转换器类,添加到系统默认的转换器列表中
from flask import Flask
from werkzeug.routing import BaseConverter
app = Flask(__name__)
#1.定义类,继承自BaseConverter
class MyRegexConverter(BaseConverter):
#2.重写init方法
def __init__(self,map,regex):
#3.初始化父类成员变量,还有子类自己的规则
super(MyRegexConverter,self).__init__(map)
self.regex = regex
#4.将转换器类,添加到系统默认的转换器列表中
app.url_map.converters["csdn"] = MyRegexConverter
#匹配三位整数
@app.route('/<csdn("\d{3}"):number>')
def get_three(number):
return 'the three number is %s'%number
#匹配四位整数
@app.route('/<csdn("\d{4}"):number>')
def get_four(number):
return 'the four number is %s'%number
#匹配一个手机号
@app.route('/<csdn("1[3-9]\d{9}"):number>')
def get_phone(number):
return 'the phone number is %s'%number
if __name__ == '__main__':
app.run()
四.methods方法
给路由增加其他的访问方式
@app.route("/",methods=["GET","POST","PUT","DELETE"])
五.返回响应
1.直接返回响应体
def hello_world():
# 1.直接返回响应体数据
return 'hello world'
# 2.直接返回响应体数据+状态码
return 'hello world',"666 BIGERROR"
# 3.直接返回响应体数据+状态码+响应头信息
return 'hello world',200,{"Content-Type":"application/json"}
2.通过jsonify返回json数据
格式:jsonify(dict)
简化格式:jsonify(key=value,key2=value2)
from flask import Flask,jsonify
app = Flask(__name__)
@app.route('/')
def hello_world():
#定义字典
dict = {
"name":"csdn",
"age":2
}
#返回json数据
return jsonify(dict)
#返回json数据简化格式
return jsonify(name='uzi',age=2800)
if __name__ == '__main__':
app.run(debug=True)
六.响应信息
1.redirect重定向
格式:redirect(‘地址’);
地址:可以是外链地址,可以是视图函数地址
from flask import Flask, redirect
app = Flask(__name__)
@app.route('/csdn')
def csdn():
#跳转到csdn
return redirect("https://www.csdn.net")
if __name__ == '__main__':
app.run(debug=True)
2.url_for反解析:通过视图函数的名称,返回地址
格式:url_for(‘视图函数名’,key=value)
提示:url_for经常配合redirect使用,可以传递参数