ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Flask框架接口实现

2022-06-13 19:36:21  阅读:127  来源: 互联网

标签:__ 请求 框架 get Flask request 接口 data name


get请求参数在@app.route("/index{参数}", methods=["GET"])

post请求参数在函数体内获取

1. 基础模块

# 导入Flask类库
from flask import Flask
# 创建应用实例
app = Flask(__naem__)
# 视图函数(路由)
@app.route('/')
def index():
	return '<h1>Hello Flask!<h1>'
# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()

run参数

参数 说明 默认值
debug 代码更新是否自动重启 False
theaded 是否开启多线程 False
port 指定端口 5000
host 指定主机(设置0.0.0.0可以通过本地IP访问) 127.0.0.1

2. 获取form表单数据

# coding:utf-8
 
@app.route("/index", methods=["POST"])#设置端口和请求方式
def index():
    # requset.form获取表单格式的请求参数(name=zhangsan&age=18) (类似字典的对象)
    name = request.form.get("name")  # 获取表单格式的请求参数
    age = request.form.get("age", "默认值")
    # get方法只能拿到多个同名参数的第一个,getlist可以获取所有。
    name_li = request.form.getlist("name")  # 获取同名参数的所有值,返回列表
 
    # 如果请求体的数据不是表单格式的(如json格式,xml格式),可以通过request.data获取
    print(request.data)  # {"name": "zhangsan", "age": 18} (Json字符串)。request.get_json() 直接返回字典,而不是Json字符串(需要前端设置请求头)。
 
    # args是用来提取url中?后拼接的参数(查询字符串QueryString)
    city = request.args.get("city")  # 127.0.0.1:5000/index?city=shenzhen (类似字典的对象)
    return "hello name=%s, age=%s, city=%s, name_li=%s" % (name, age, city, name_li)     

request常用的属性如下:

属性 说明 类型
data 记录请求的数据,并转换为字符串 *
form 记录请求中的表单数据 MultiDict
args 记录请求中的查询参数 MultiDict
cookies 记录请求中的cookie信息 Dict
headers 记录请求中的报文头 EnvironHeaders
method 记录请求使用的HTTP方法 GET/POST
url 记录请求的URL地址 string
files 记录请求上传的文件 *

3.获取json数据

方法1:

# 创建一个接口 指定路由和请求方法 定义处理请求的函数
@app.route(rule='/', methods=['POST'])
def everything():
    # 获取 JSON 格式的请求体 并解析
    request_body = request.get_json()
    print('Request info: ', request_body)

    # 生成响应信息
    response_info = {'msg': '收到'}
    print('Response info:', response_info)

    # 将响应信息转换为 JSON 格式
    response_body = jsonify(response_info)

    # 最终对请求进行相应
    return response_body

方法2:

from flask import Flask
from flask import jsonify
from flask import request
import json

@app.route("/flask/login", methods=['POST'])
def login():
 data = request.get_data()
 data = json.loads(data)
 username = data['username']
 password = data['password']

 return jsonify({"login": Login.login(username, password)}) # 返回布尔值

区别:

  • get_data():是以数据的格式进行获取,如果你传输的是一个标准的json,那他依然是个json格式;

  • get_json():只能去解析json格式的传递参数

4.使用IP6端口

if __name__ == '__main__':
    app.run(host='::',port=5000,debug=False) #IP6全网开启

    app.run(host='0.0.0.0',port=5000,debug=False) #IP4全网开启

标签:__,请求,框架,get,Flask,request,接口,data,name
来源: https://www.cnblogs.com/touchTomorrow/p/16371996.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有