固定参数与转换器

创建文件夹,里创建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()

返回响应

python flask获取请求来源_后端


转换器形式

外加正则匹配,其中不能出现^$这两个符号

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()

返回响应

python flask获取请求来源_flask_02

查询参数获取

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()

返回响应

python flask获取请求来源_json_03

表单获取参数

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()

返回响应

python flask获取请求来源_python_04

上传文件

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()

返回响应

python flask获取请求来源_python flask获取请求来源_05

模板响应

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文件

python flask获取请求来源_后端_06


返回响应

python flask获取请求来源_python_07

重定向响应形式

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()

直接跳转到输入的页面

python flask获取请求来源_python_08

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()

返回响应

python flask获取请求来源_后端_09

元祖数据响应

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()

返回响应

python flask获取请求来源_python_10

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()

返回响应

python flask获取请求来源_python flask获取请求来源_11

前端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':'添加成功'})