1. 前言
flask
也被攻克了- 有了这个玩意
pyhton
可以很方便的写接口 或者页网页- 这篇文章主要写接口
- 安装是必须的必 不在说了
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]