python使用Flask开发简单接口(一)

使用Flask开发简单接口(一)

使用pip3 install Flask指令安装Flask。

为了更好的学习Flask,我们可以在网上找到Flask的官方文档和中文文档,以便进一步学习。

Flask官方文档(1.0.x版本):https://flask.palletsprojects.com/en/1.0.x/
Flask中文文档(最新版):https://dormousehole.readthedocs.io/en/latest/

GET方法

from flask import Flask, jsonify

app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False  # jsonify返回的中文正常显示

data = [
    {"id": 1, "username": "阿毛", "password": "123456", "role": 0, "sex": 0, "telephone": "10086", "address": "北京市海淀区"},
    {"id": 2, "username": "小灰", "password": "abc", "role": 1, "sex": 0, "telephone": "10010", "address": "广州市天河区"},
    {"id": 3, "username": "大白", "password": "666666", "role": 0, "sex": 1, "telephone": "10000", "address": "深圳市南山区"}
]


@app.route('/hello')
def hello_world():
    return 'Hello World!'


@app.route("/users", methods=["GET"])
def get_all_users():
    """获取所有用户信息"""
    return jsonify({"code": "0", "data": data, "msg": "操作成功"})


@app.route("/users/<int:user_id>", methods=["GET"])
def get_user(user_id):
    """获取某个用户信息"""
    if user_id > 0 and user_id <= len(data):
        return jsonify({"code": "0", "data": data[user_id - 1], "msg": "操作成功"})
    return jsonify({"code": "1", "msg": "用户不存在"})


if __name__ == '__main__':
    app.run()

  • 使用< int:user_id >接收传入的参数

POST方法

from flask import Flask, jsonify, request

app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False  # jsonify返回的中文正常显示

#未连接数据库,故简单模拟注册
@app.route("/register", methods=['POST'])
def user_register():
    username = request.json.get("username").strip() # 用户名
    password = request.json.get("password").strip() # 密码
    sex = request.json.get("sex", "0").strip() # 性别,默认为0(男性)
    telephone = request.json.get("telephone", "").strip() # 手机号,默认为空
    address = request.json.get("telphone", "").strip() # 地址,默认为空
    if username and password and telephone:
        if username == "baihui":
            return jsonify({"code": 2002, "msg": "用户名已存在!!!"})
        elif not (sex == "0" or sex == "1"):
            return jsonify({"code": 2003, "msg": "输入的性别只能是 0(男) 或 1(女)!!!"})
        elif not (len(telephone) == 11 and re.match("^1[3,5,7,8]\d{9}$", telephone)):
            return jsonify({"code": 2004, "msg": "手机号格式不正确!!!"})
        else:
            return jsonify({"code": 0, "msg": "恭喜,注册成功!"})
    else:
        return jsonify({"code": 2001, "msg": "用户名/密码/手机号不能为空,请检查!!!"})

#未连接数据库,故简单模拟登录,只有一个用户
@app.route("/login", methods=['POST'])
def user_login():
    username = request.values.get("username")
    password = request.values.get("password")
    if username and password:
        if username == "baihui" and password == "123456":
            return jsonify({"code": 0, "msg": "恭喜,登录成功!"})
        return jsonify({"code": 1002, "msg": "用户名或密码错误!!!"})
    else:
        return jsonify({"code": 1001, "msg": "用户名或密码不能为空!!!"})


if __name__ == '__main__':
    app.run()

  • 使用 request 来接收请求参数:

    request.form:用于接收表单参数
    request.args:用于接收GET参数
    request.json:用于接收JSON参数
    request.values:获取所有参数(表单参数+GET参数)
    request.file:用于接收文件
    
  • 使用request.json.get("username")request.values.get("username")来获取请求体中的属性。

参考链接:

https://www.cnblogs.com/wintest/category/1730601.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值