美文网首页
flask 接口get-post

flask 接口get-post

作者: 云高风轻 | 来源:发表于2023-06-04 21:36 被阅读0次

1. 前言

  1. flask 也被攻克了
  2. 有了这个玩意 pyhton 可以很方便的写接口 或者页网页
  3. 这篇文章主要写接口
  4. 安装是必须的必 不在说了

2. 直接上代码 get

import json

# 创建 Flask 应用,__name__ 是当前模块的名称,
# 用于指定 Flask 应用的根目录。
app = Flask(__name__)

# 默认都是 get 请求
# 装饰器定义路由 / 根路径
# 多个路由:
@app.route("/")
@app.route("/home")
def index():
    return 'hello Flask 热更新'

# 如果返回 列表和字典报错 用  jsonify(列表)
@app.route("/login")
def login():
    return {
        "code": 1000,
        "msg": '登录成功',
        "data": {
            "name": 'yzs',
            "age": 18
        }
    }

# 基础用法<username> 
# 限制类型<int:age>
# 限制类型额范围<any(a,b,c):name>  元组限定范围 abc中的一个
@app.route("/login/<any(a,b,c):username>")
def login_p(username):
    print('login-username', username)
    return {
        "code": 1000,
        "msg": '地址参数 成功',
        "data": {
            "name": username,
            "age": 18,
        }
    }

#  既可以是get 也可以是post请求
@app.route("/register", methods=['POST', 'GET'])
def register():
    if request.method == "POST":
        print('post---请求')
    else:
        print('get--请求')
    return [1, 2, 526]

#  get 参数  http://yzs.com/search?qeury='演示'
@app.route("/search")
def search():
    kw = request.args.get('query')
    print('参数', request.args)
    return {
        "code": 1000,
        "msg": 'search 成功',
        'kw': kw
    }

# 返回的 是从json文件读取的数据
@app.route('/json', methods=['GET'])
def get_data():
    with open('./movie.json', 'r') as file:
        data = json.load(file)
    return jsonify(data)


if __name__ == '__main__':
    # host port debug 默认 5000
    # threaded 是否多线程
    app.run(port=8081, debug=True)


3. post

# **********************************  post
@app.route('/post_json', methods=['POST'])
def post_json():
    # data = request.get_json()

    data = request.json
    print('post---------data-:', data)
    # 处理参数...
    return {'msg': '客户端是 json 字符串的形式',
            'name': data['name']}
  • 前端发起 请求演示
    postjson = () => {
        const url = '/post_json';  // 请求的URL
        const data = {             // JSON 格式的数据
            name: 'yzs'
            age: 18,
        };

        fetch(url, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
            },
            body: JSON.stringify(data),
        })
            .then(response => response.json())
            .then(data => {
                // 处理响应数据
                console.log(data);
            })
            .catch(error => {
                // 处理请求错误
                console.error(error);
            });
    }



@app.route('/postStrObj', methods=['POST'])
def post_data():
    param1 = request.form.get('name')
    param2 = request.form.get('age')
    print('param1',param1)
    # 处理参数...
    return {
        'name': param1,
        "age": param2
    }

  • 前端是 js 演示
    postStrObj = () => {
        fetch('/postStrObj', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
            },
            body: `name=${username.value}&age=value2`
        })
            .then(response => response.json())
            .then(data => {
                console.log(data);
            });
    }

4. 跨域

全部允许跨域

from flask_cors import CORS ,cross_origin
app = Flask(__name__)
CORS(app, resources={r"/*": {"origins": "*"}})

单个接口跨域设置

@app.route("/list")
@cross_origin()
def get_list():
    return  [1,34,6,8,8,9]

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉

相关文章

网友评论

      本文标题:flask 接口get-post

      本文链接:https://www.haomeiwen.com/subject/nqfiedtx.html