Pythonの安らかなフレームワークインターフェイスの開発と実装

理解

フラスコを安らかに取り付けます

  1. cmd入力:pipインストールフラスコ、インストールフラスコ

  2. cmd入力:pip installフラスコ-restful、installflask-restful

インストールプロセス中に次のエラーが表示されます。

You are using pip version 9.0.1, however version 19.2.3 is available. You should consider upgrading via the ‘python -m pip install –upgrade pip’ comm and.

解決

アップグレードpippython -m pip install --upgrade pip

注:一部のFlaskバージョンでは、モジュールのインポート時にfromフラスコ.ext.restfulインポートApiエラーが発生した場合、fromflask_restfulインポートApiを使用できます。

公式サイトチュートリアル

restful.pyコンテンツ:

#! /usr/bin/python3
# encoding:utf-8from flask import Flask,request
from flask_restful import reqparse, abort, Api, Resource
# アプリ、apiを初期化します
app =Flask(__name__)
api =Api(app)
LISTS =[{'parameter':'ホーム'},{'parameter':'ログインする'},{'parameter':'舞台裏'}]
# /LISTS/<list_id(urlパラメーター)、入力パラメーター値リストのLISTS添え字が範囲外であると判断し、終了します
def abort_if_list_doesnt_exist(list_id):try:
LISTS[list_id]
except IndexError:abort(404, message="入力した値が範囲外です")'''
add_argument('per_page', type=int, location='args') str
add_引数では、パラメータオブジェクトは、パラメータ名、パラメータタイプ、およびパラメータ取得方法を指定することによって取得され、合法性の検証をサポートします
最初のパラメーターは、取得する必要のあるパラメーターの名前です。
パラメータタイプ:パラメータのタイプ。パラメータに中国語が含まれている可能性がある場合は、6つを使用する必要があります。.text_type.または直接タイプを指定しないでください
パラメータの場所:パラメータ、オプションの引数を取得する方法(URLを取得)、json(jsonタイプ)、form(フォームの送信)
必要なパラメータ:必要かどうか、デフォルトで必要=True(する必要がある)
パラメータヘルプ:必要なパラメータについて、リクエストが提供されていない場合、ヘルプの対応する情報が返されます
'''
parser = reqparse.RequestParser()
# 入力パラメータ、場所='json'json形式の入力パラメーターとして表されます
parser.add_argument('parameter',location='json')
# httpリクエストメソッドを実装するためのルーティングクラス、関数get、post、put、deleteなど
# URLにパラメータが含まれていない/LISTS
classc_dictList(Resource):
# getと入力し、リストLISTSに従って処理し、新しいリストrを返します。_lists
def get(self):
r_lists =[]for listV in LISTS:if listV:
new_list ={}
# LISTSリストには辞書が格納されており、トラバースすると辞書リストになりますV['parameter']辞書の値を取得するには
new_list['parameter']= listV['parameter']
# LISTSはリストであり、インデックスは対応する添え字値を見つけることができます
new_list['url']='url/'+str(LISTS.index(listV))
# LISTSリストに辞書を追加する
r_lists.append(new_list)return r_lists
# postと入力し、リストLISTSの後に値を追加して、リスト値を返します。
def post(self):
args = parser.parse_args()
list_id =len(LISTS)
# args['parameter']、参加する
LISTS.append({'parameter': args['parameter']})return LISTS,201
# httpリクエストメソッドを実装するためのルーティングクラス、関数get、post、put、deleteなど
# パラメータへのurl/LISTS/<list_id 
classc_dict(Resource):
# LISTSの添え字として入力URL入力パラメータ値に従って、値を返します
def get(self, list_id):
url_int =int(list_id)abort_if_list_doesnt_exist(url_int)return LISTS[url_int]
# LISTSの添え字として入力URL入力パラメータ値に従って、値を変更し、リスト値を返します
def put(self, list_id):
url_int =int(list_id)
args = parser.parse_args()
# args['parameter']、参加する
parameter ={'parameter': args['parameter']}
LISTS[url_int]= parameter
return LISTS,201
# LISTSの添え字として入力URL入力パラメータ値に従って、値を削除します
def delete(self, list_id):
url_int =int(list_id)abort_if_list_doesnt_exist(url_int)
del LISTS[url_int]return'',204
# リソースルーティングAPIを設定する.add_リソース(クラス名、URLパス)
# url、次のようなパラメータなし:http://127.0.0.1:8891/LISTS
api.add_resource(c_dictList,'/LISTS')
# url、パラメータを取り込む、<list_idは、次のような変数値です。http://127.0.0.1:8891/LISTS/1
api.add_resource(c_dict,'/LISTS/<list_id ')if __name__ =='__main__':
# ip、port、defaultを設定しないでください:http://127.0.0.1:5000/
# app.run(debug=True)
# ip、portを設定します
app.run(host="127.0.0.1", port=8891,debug=True)

コンソールの実行結果:

Serving Flask app “123” (lazy loading) * Environment: production
WARNING: This is a development server. Do not use it in a productiondeployment. Use a production WSGI server instead. * Debug mode: onRestarting with stat * Debugger is active! * Debugger PIN: 279-443-943 * Running on http://127.0.0.1:8891/ (Press CTRL+C toquit)

郵便配達員の通話結果

パラメータなしのURL

get

post、パラメータの入力要求があり、形式はjsonで、入力パラメータの値がリストに追加されます

パラメータgetを使用したurl、図= 1に示すように、urlに従ってパラメータ値を入力します。LISTSの添え字として、リスト値を取得します。

入れて、図に示すようにURLに従ってパラメータ値をvalue = 1として入力し、LISTSの添え字として、リスト値を要求された入力パラメータ値に変更し、順序にログインします。

入れて、下図のようにURLに応じて、LISTSの添え字としてパラメータ値を入力し、値を削除して、ステータス204に正常に戻ります。

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

Pythonの安らかなフレームワークインターフェイスの開発と実装
Pythonインターフェース開発の実装手順の詳細な説明
一般的に使用されるPython3インターフェイスの開発.md
FMアルゴリズム分析とPython実装
交差点のPython実装とIOUチュートリアル
NaiveBayesアルゴリズムとそのPython実装
Python and Go
最小二乗法とそのpython実装の詳細
Pythonの内省と考察
python開発[最初の記事]
[python] ubuntuの下のpython2とpython3
PythonGUIインターフェイスプログラミング
Pythonの分解とパッケージ化
Python3の構成とentry.md