flask框架搭建api

入門

入門網(wǎng)址: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()

訪問(wèn) http://127.0.0.1:5000/ ,你會(huì)看見(jiàn)你好的問(wèn)候。

image.png

  • 允許外網(wǎng)進(jìn)行訪問(wèn)

app.run(host='0.0.0.0')

搭建自己的api

第一版

  • 功能說(shuō)明

從url中解析出文字信息,并對(duì)文字信息進(jìn)行加工處理,我這邊是把文本進(jìn)行一個(gè)實(shí)體識(shí)別和關(guān)系抽取。

# -*- 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)

訪問(wèn)http://0.0.0.0:5000/?inputstr=%E4%BD%A0%E5%A5%BD%E5%95%8A
可以見(jiàn)到你要的文字

第二版

  • 功能說(shuō)明
    根據(jù)別人的文檔定制化開(kāi)發(fā)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
結(jié)果顯示:

image.png

第三版

功能說(shuō)明:
clent端訪問(wèn)server端,傳這邊的數(shù)據(jù)
需要用post進(jìn)行傳參
post傳參需要用request.form獲取內(nèi)容
server端:

#-*- conding:utf-8 -*-
'''
驗(yàn)證post參數(shù)請(qǐng)求
'''
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)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,695評(píng)論 1 45
  • 還有十幾天就要生寶寶了,行動(dòng)沒(méi)之前利索。 每次去幼兒園接女兒時(shí),總會(huì)碰到幾位熱心的大媽,婆婆輩的。 問(wèn)我:肚子這么...
    二姐說(shuō)育兒先育己閱讀 751評(píng)論 0 0