本当のゼロの基本的なPython開発ウェブ

PythonがWebサービスを開発する利点は、開発効率が高いことです。これには、Javaコードの5分の1の量しか必要ありません。
Pythonには、Webサービスを構築するための多くのフレームワークがあります。この記事では、Djangoとbottleの2つのフレームワークを紹介します。

Django

インストール

まず、フレームワークをインストールします

インストールは成功し、バージョンは1.11.28です。フレームワークファイルは\ python27 \ Scriptsディレクトリにインストールされます(コンピューターのPythonインストールディレクトリでスクリプトを検索するだけです)。

プロジェクトの作成

最初に\ python27 \ Scriptsディレクトリに入り、プロジェクトjinanwxを作成します(任意の名前で始まります)

新しく作成されたプロジェクトのディレクトリを同じディレクトリに表示できます

独自のモジュールを開発する

python27 \ Scripts \ jinanwx \ jinanwxと入力します。独自のモジュールを作成する

jgotest01.pyで記述された簡単なコードは次のとおりです

モジュールの機能は、json形式の結果を返すことです。

urlsモジュールを変更します

次に、urls.pyモジュールを変更する必要があります

カタログファイルは以下の通りです

とても簡単です。新しいファイルを作成し、別のファイルを変更すれば完了です。

サービスを開始

前のディレクトリに戻ってサービスを開始します

正常に起動し、ブラウザアクセスを試してください

bottle

開発機能は特に複雑なWebサービスではないため、Djangoよりも軽量なボトルフレームワークの使用を検討できます。ボトルの例は、Linuxで示されています。

インストール

ボトルフレームを使用して最初に取り付けます。 1つの命令が実行されます。

# pip install bottle  

Pythonコマンドラインインポートボトルを入力します。エラーが報告されない場合は、成功しています。

コード

私のWebサービスはファイルbottleweb.pyで、コードは次のとおりです。いくつかの説明はコードコメントにあります

# coding=utf-8from bottle import(run, route,get, post, put,delete, request, hook, response, static_file, app)import json  
import MySQLdb #この例では、データベースを操作する必要があります。それ以外の場合は、この行を記述する必要はありません。データベースパッケージpipは失敗したと推定されます。私は、yum installMySQLを使用しています。-python成功
import sys  
reload(sys)    
sys.setdefaultencoding('utf8')import bottle  
app = bottle.default_app()#静的リソースの処理を定義する必要があります。静的リソースはこの行を書き込むことができません
# vueスキャフォールディングを構築する場合は、次の2つが必要です。@コンテンツをフックします。そうしないと、クロスドメインリソースアクセスエラーが報告されます
@ hook('before_request')  
def validate():  
 REQUEST_METHOD = request.environ.get('REQUEST_METHOD')  

 HTTP_ACCESS_CONTROL_REQUEST_METHOD = request.environ.get('HTTP_ACCESS_CONTROL_REQUEST_METHOD')if REQUEST_METHOD =='OPTIONS' and HTTP_ACCESS_CONTROL_REQUEST_METHOD:  
  request.environ['REQUEST_METHOD']= HTTP_ACCESS_CONTROL_REQUEST_METHOD  

@ hook('after_request')  
def enable_cors():  
 response.headers['Access-Control-Allow-Origin']='*'  
 response.headers['Access-Control-Allow-Methods']='GET,POST,PUT,DELETE,OPTIONS'  
 response.headers['Access-Control-Allow-Headers']='*'  

@ route('/test2020/dist/<path>')#Webサービスの下の静的リソースのアドレス、フロントエンド静的リソースのルートとアプリは配置されません.ルートは書けません
def stat(path):returnstatic_file(path, root='./dist/')  

@ app.route('/test2020/dist/static/js/<path>')    
def js(path):  #vueがパッケージ化された後のディレクトリ構造はdistなどで静的であるため、これらのディレクトリをこのように記述しました。
 returnstatic_file(path, root='./dist/static/js/')  

@ app.route('/test2020/dist/static/css/<path>')   
def css(path):returnstatic_file(path, root='./dist/static/css/')  
    
@ get('/test2020/date')#表に日付を返すと、SQLを見ればわかります
def helloins():  
 db = MySQLdb.connect("127.0.0.1","yourusername","yourpassword","yourDBname", charset='utf8')  
 cursor = db.cursor()  
 sql ="select DISTINCT date from testtable"  
 print sql  
 cursor.execute(sql)  
 data = cursor.fetchall()  
 jsondata={}  
 results=[]for row in data:  
  result ={}  
  result['DATE']= row[0]  
  results.append(result)  
 jsondata['code']=0  
 jsondata['datas']=results  
 return jsondata  #フロントエンドのvueの受信と処理を容易にするために、json形式を返します。実際、さまざまなタイプを返すことができます。
    
@ get('/test2020/helloworld')  
def helloworld():return'hello world!'if __name__ =='__main__':run(host='0.0.0.0', port=2020, debug=True, reloader=True)

Bottleweb.pyが配置されているディレクトリで実行します

# python bottleweb.py

Webサービスが開始されます。ブラウザでhttp://127.0.0.1:2020/test2020/helloworldにアクセスして、効果を確認してください。

MySQLデータベースがインストールされている場合、test2020 / dateのURLが結果を返すことができるかどうかをテストできます

データベースに以下のデータがある限り

ユーザーが特定の日付を選択できるように、フロントエンドページは次のようになります。

フロントエンドはvue + vuxで開発され、パッケージ化および印刷されたものは、コードに記載されているdist静的リソースディレクトリにアップロードされます。
上記のコードが少し複雑だと思われる場合は、すべてのルート、app.routeのものを削除し、/ test2020 / dateステートメントブロックを削除し、@ hookを削除し、MySQLのものを削除し、フロントエンドのものをまったく無視することができます。シンプルなボトルウェブサービスは、ハローワールドに相当します。
Webサービスに必要なコンテンツである静的リソースとデータベースを含む上記のコードを可能な限り理解することをお勧めします。

ピップアップグレードピット

発生したpipの問題を共有するために、私のPythonバージョンは2.6.6と非常に低くなっています。もともとyumのepelをインストールすることで、便利なpipが正常にインストールされました。しかし、pipコマンドを使用するたびに、下部にアップグレードを求めるプロンプトが表示されます

You are using pip version 9.0.3, however version 20.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command

pip install --upgrade pip upgradeを実行しましたが、pipコマンドが使用できません。また、アップグレード後、下位バージョンのpipに再度インストールする場合、対応するインストールパッケージはありません。 Yumは20.0.2バージョンしか見つけることができません(古いバージョンは上書きされますか?)。

http://bootstrap.pypa.io/2.6/get-pip.py  

get-pip.pyをダウンロードした後、正常にインストールできません。最後に、上記のアドレスにバージョン2.6のインストールファイルをダウンロードした後、使用できるpipが正常にインストールされます。

総括する

javaと比較して、pythonのWebコードは少なく、インストールするライブラリも少なくなっています。機能とパフォーマンスの要件を満たすことができる場合は、pythonの方が適している可能性があります。

Recommended Posts

本当のゼロの基本的なPython開発ウェブ
PythonWeb開発の完全ガイド
pythonのWeb開発フレームワークとは何ですか
Python3の基本構文
Pythonの基本的な要約
Pythonの基本的な演算子
Python Webクローラー(練習)
Pythonの基本的な構文ジェネレータ
Pythonの基本的な描画チュートリアル(1)
python開発[最初の記事]
PythonによるWebスクレイピング
python_クローラーの基本的な学習
Pythonの基本的なデータタイプ
Pythonの基本構文
Pythonの基礎知識(1)
Pythonの基本的なデータタイプ
Pythonの基本的な構文の反復
Pythonの基本的な構文リストの作成
Pythonの基本的な描画チュートリアル(2つ)
ubuntuビルドpython開発環境
一般的に使用されるPython3インターフェイスの開発.md