吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2524|回复: 22
收起左侧

[Python 原创] 记一次Python写API接口的笔记

  [复制链接]
743567274 发表于 2022-11-10 10:35
之前一直用易语言开发API接口。突发奇想,准备使用python进行一次API的开发!
首先准备工作
打开百度,搜索,按照代码注释自己理解开始抄!
[Python] 纯文本查看 复制代码
import flask #导入自带的web服务
from flask import request #导入自带的web服务中的request

server = flask.Flask(__name__)

@server.route('/list/project',methods = ['get'])#创建路径为/list/project的get接口
def Projectlist():
    proj = request.values.get('project')#获取get接口的参数project保存在proj中
    name = request.values.get('name')#获取get接口的参数name保存在name中
    project = { #准备构造返回的json
        "msg":"ok",
        "status":200,
        "data":{
            "project":proj,
            "name":name
        }
    }
    return project#把构造的json格式返回

@server.route('/',methods = ['POST'])#创建根路径的post接口
def post():
    name = [color=#000][font=Consolas, &quot]request.stream.read()[/font][/color] #额,这里其实是不想写了,只是想测试一下,就直接把请求体返回回去!
    return name
if __name__ == '__main__':
    server.run(host='127.0.0.1',port=80,debug=True) #创建一个本地服务


打包后发现了一个错误
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
中文翻译:警告:这是一个开发服务器。不要在生产部署中使用它。请使用生产WSGI服务器。


百度,查找问题。经过修改后的代码


[Python] 纯文本查看 复制代码
import flask #导入自带的web服务
from flask import request #导入自带的web服务中的request
from gevent import pywsgi #导入第三方的web服务

server = flask.Flask(__name__)

@server.route('/list/project',methods = ['get'])#创建路径为/list/project的get接口
def Projectlist():
    proj = request.values.get('project')#获取get接口的参数project保存在proj中
    name = request.values.get('name')#获取get接口的参数name保存在name中
    project = { #准备构造返回的json
        "msg":"ok",
        "status":200,
        "data":{
            "project":proj,
            "name":name
        }
    }
    return project#把构造的json格式返回

@server.route('/',methods = ['POST'])#创建根路径的post接口
def post():
    name = request.stream.read()   #额,这里其实是不想写了,只是想测试一下,就直接把请求体返回回去!
    return name
if __name__ == '__main__':
    app = pywsgi.WSGIServer(('127.0.0.1',80),server)#创建一个本地服务
    app.serve_forever()#启动这个服务

get.jpg post.jpg

其他相关笔记
[Python] 纯文本查看 复制代码
#如果想创建其他接口,methods接口可以多选:methods = ['POST','GET'...]

免费评分

参与人数 8吾爱币 +12 热心值 +5 收起 理由
lqs1123 + 1 + 1 谢谢@Thanks!
sunjz + 1 我很赞同!
zhnb233 + 1 谢谢@Thanks!
kololi + 1 + 1 通俗易懂
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
鹤鹤鹤 + 1 + 1 我很赞同!
daokunn + 1 热心回复!
woyucheng + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

choujie1689 发表于 2022-11-11 14:53
ly765893958 发表于 2022-11-11 13:00
那个怎么写查询参数呢,我在教程里没看到

@app03.get('/query')
async def pagelimit(page: int, limit: Optional[int] = None):
    if limit:
        return {"page":page,"limit":limit}
    return {"page":page}

像上面这样,查询参数定义在函数内def pagelimit(page: int, limit: Optional[int] = None):,路由只定义路由@app03.get('/query')
xuanmuluck 发表于 2022-11-10 15:46
choujie1689 发表于 2022-11-10 10:39
 楼主| 743567274 发表于 2022-11-10 11:00
15820394839 发表于 2022-11-10 10:39
学习了,不过感觉还是fastapi好用

感谢大哥!搜索了一下,感觉确实方便强大了不少。学的越多,就感觉知道的越少!
lizy169 发表于 2022-11-10 12:05
学习了,谢谢大神
fengwolf3 发表于 2022-11-10 12:59
收藏学习,感谢分享
zhybest 发表于 2022-11-10 14:01
还是很厉害的
raykeyor 发表于 2022-11-10 14:35
赞赞赞。。。
ly765893958 发表于 2022-11-10 15:05
15820394839 发表于 2022-11-10 10:39
学习了,不过感觉还是fastapi好用

研究了一下  部署确实很方便  环境一安装  简单两句代码就实现了helloword的接口  但是对于稍稍复杂一点的  才疏学浅 有点看不懂教程的语法
xuanmuluck 发表于 2022-11-10 15:07
我是很好奇,这实现了啥功能呢?
chinalys 发表于 2022-11-10 15:44
xuanmuluck 发表于 2022-11-10 15:07
我是很好奇,这实现了啥功能呢?

网络验证等等
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 07:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表