flask框架搭建api

入门

入门网址:http://docs.jinkan.org/docs/flask/quickstart.html

from flask import Flask
app = Flask(__name__)

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

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

访问 http://127.0.0.1:5000/ ,你会看见你好的问候。

image.png

  • 允许外网进行访问

app.run(host='0.0.0.0')

搭建自己的api

第一版

  • 功能说明

从url中解析出文字信息,并对文字信息进行加工处理,我这边是把文本进行一个实体识别和关系抽取。

# -*- coding: utf-8 -*-
# antuor:dxiaod
from flask import Flask, request
app = Flask(__name__)

@app.route('/',methods=['GET'])
def get_text_input():
    text = request.args.get('inputstr')
    print(text)
    return text
if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True)

访问http://0.0.0.0:5000/?inputstr=%E4%BD%A0%E5%A5%BD%E5%95%8A
可以见到你要的文字

第二版

  • 功能说明
    根据别人的文档定制化开发api
    传参:一堆json样式的字符串
    回参:一堆json样式的字符串
  • 传参功能用bind_request_parmams
  • 回参用Response
# -*- coding: utf-8 -*-
# antuor:dxiaod
from flask import Flask, request, Response
from flask_request_params import bind_request_params
import json
app = Flask(__name__)
app.before_request(bind_request_params)

@app.route('/projectname/name',methods=['GET'])
def get_text_input():
    # text = request.args.get('inputstr')
    text = request.params["askjson"]
    action = request.params["action"]
    jieguo = {"text":text}
    print(text)
    return Response(json.dumps(jieguo))
if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True)

浏览器输入:
http://0.0.0.0:5000/projectname/name?action=query&askjson=nihaio
结果显示:

image.png

第三版

功能说明:
clent端访问server端,传这边的数据
需要用post进行传参
post传参需要用request.form获取内容
server端:

#-*- conding:utf-8 -*-
'''
验证post参数请求
'''
from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'hello world'


@app.route('/register', methods=['POST'])
def register():
    print(request.method)
    print(request.form)
    print(request.form['name'])
    print(request.form.get('name'))
    print(request.form.getlist('name'))
    print(request.form.get('nickname', default='little apple'))
    return 'welcome'

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

client端

#-*- conding:utf-8 -*-

import requests

user_info = {'name': 'letian', 'password': '123'}
r = requests.post("http://127.0.0.1:5000/register", data=user_info)

print(r.text)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,401评论 1 45
  • 还有十几天就要生宝宝了,行动没之前利索。 每次去幼儿园接女儿时,总会碰到几位热心的大妈,婆婆辈的。 问我:肚子这么...
    二姐说育儿先育己阅读 4,127评论 0 0

友情链接更多精彩内容