固定参数与转换器
创建文件夹,里创建py文件
在里面编写
from flask import Flask
app=Flask(__name__)
@app.route('/hello/<int:id>/<string:name>')
def hello(id,name):
return f'接收到的id是{id}字符串是{name}'
if __name__ == '__main__':
app.run()
返回响应
转换器形式
外加正则匹配,其中不能出现^$这两个符号
from flask import Flask
app=Flask(__name__)
#1.导入转换器的基类
from werkzeug.routing import BaseConverter
# 2.封装转换器基类并实现regex方法
class PhoneConeverter(BaseConverter):
regex=r'1[3-9][0-9]{9}'
#3.把自定义的转换器挂载到flask对象上面
app.url_map.converters['phone']=PhoneConeverter
#4.使用自定义的转换器
@app.route('/phone/<phone:my_phone>')
def get_phone(my_phone):
return f'当前手机号是{my_phone}'
if __name__ == '__main__':
app.run()
返回响应
查询参数获取
args: 查询参数
(1).查询参数
from flask import Flask
app=Flask(__name__)
## 查询参数的获取
from flask import request
###http://127.0.0.1:5000/query/?name=ss&age=223
@app.route('/query/')
def query():
#获取所有参数,并转换为dict类型
params=request.args.to_dict() #把不可变类型转换为普通的dict类型
print(params)
name=request.args.get('name') #获取某一个参数
age=request.args.get('age')
return f'当前名字是{name},年龄是{age}'
if __name__ == '__main__':
app.run()
返回响应
表单获取参数
from flask import Flask
app=Flask(__name__)
### 表单获取参数
from flask import request
@app.route('/form',methods=['post'])
def form():
name=request.form.get('name')
age=request.form.get('age')
return f'名字是{name},年龄是{age}'
if __name__ == '__main__':
app.run()
返回响应
上传文件
from flask import Flask
app=Flask(__name__)
#上传文件
from flask import request
@app.route('/upload',methods=['post'])
def upload():
img=request.files.get('img')
print(img)
#如果不加文件夹默认上传到项目根目录 自定义上传的文件名
img.save('./static/01.png')
return '上传文件'
if __name__ == '__main__':
app.run()
返回响应
模板响应
from flask import Flask
app=Flask(__name__)
#模板响应形式
from flask import render_template
@app.route('/page')
def index():
return render_template('hello.html')
if __name__ == '__main__':
app.run()
在项目内创建文件夹来存放html文件
返回响应
重定向响应形式
from flask import Flask
app=Flask(__name__)
#重定向响应形式
from flask import redirect
@app.route('/jump')
def jump():
return redirect('https://baidu.com/')
if __name__ == '__main__':
app.run()
直接跳转到输入的页面
json数据响应
from flask import Flask
app=Flask(__name__)
#json数据响应
from flask import jsonify
@app.route('/return_json')
def return_json():
data={
'nsme':'zhangsan',
'age':18,
'action':'aaaa'
}
return jsonify(data)
if __name__ == '__main__':
app.run()
返回响应
元祖数据响应
from flask import Flask
app=Flask(__name__)
#元组数据响应
@app.route('/return_json')
def return_json():
#元祖返回三个数据 页面内容 状态码 headers头
return ('hello',400,{
'aaa':'bbb'
})
if __name__ == '__main__':
app.run()
返回响应
make_response()自定义响应
from flask import Flask
app=Flask(__name__)
sponse()自定义响应
from flask import make_response
@app.route('/return_obj')
def return_obj():
# 响应字符串
resp=make_response('hello')
# 响应头键值对
resp.status='404'
# 状态码与状态码提示信息
resp.headers['aaa']='bbb'
# 注意: 响应头键值对与状态码提示信息均为英文, 否则抛异常
return resp
if __name__ == '__main__':
app.run()
返回响应
前端post添加后端模型类数据
要从flask导入json
模型类添加
class GoodView(Resource):
def post(self):
data=request.get_data()
data=json.loads(data)
name=data['name']
print('sssssssssssssssssss',name)
c1=Classify(name=name)
db.session.add(c1)
db.session.commit()
return jsonify({'code':200,'msg':'添加成功'})