记一次Python写API接口的笔记
之前一直用易语言开发API接口。突发奇想,准备使用python进行一次API的开发!首先准备工作
打开百度,搜索,按照代码注释自己理解开始抄!
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 = request.stream.read() #额,这里其实是不想写了,只是想测试一下,就直接把请求体返回回去!
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服务器。
百度,查找问题。经过修改后的代码
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()#启动这个服务
其他相关笔记
#如果想创建其他接口,methods接口可以多选:methods = ['POST','GET'...] ly765893958 发表于 2022-11-11 13:00
那个怎么写查询参数呢,我在教程里没看到
@app03.get('/query')
async def pagelimit(page: int, limit: Optional = None):
if limit:
return {"page":page,"limit":limit}
return {"page":page}
像上面这样,查询参数定义在函数内def pagelimit(page: int, limit: Optional = None):,路由只定义路由@app03.get('/query') chinalys 发表于 2022-11-10 15:44
网络验证等等
你这不是本机吗? 学习了,不过感觉还是fastapi好用 15820394839 发表于 2022-11-10 10:39
学习了,不过感觉还是fastapi好用
感谢大哥!搜索了一下,感觉确实方便强大了不少。学的越多,就感觉知道的越少! 学习了,谢谢大神 收藏学习,感谢分享 还是很厉害的 赞赞赞。。。 15820394839 发表于 2022-11-10 10:39
学习了,不过感觉还是fastapi好用
研究了一下部署确实很方便环境一安装简单两句代码就实现了helloword的接口但是对于稍稍复杂一点的才疏学浅 有点看不懂教程的语法{:301_995:} 我是很好奇,这实现了啥功能呢? xuanmuluck 发表于 2022-11-10 15:07
我是很好奇,这实现了啥功能呢?
网络验证等等