Python には、基本的な小さなアーキテクチャから完全なアーキテクチャに至るまで、無数の Web フレームワークがあり、それぞれに独自の利点があります。これで Web 開発を行う準備が整いましたが、詳細に入る前に、最初から始めましょう。
目標
既存のリッチ画像リソースを使用して画像閲覧Webサイトを構築
条件
開発言語:
python3
ライブラリ:
flask: オープンソースの Python Web サーバー フレームワーク
jinja2:flask のデフォルトのテンプレート エンジン
エディタ:
推奨の pycharm
最も単純な Web サーバー
Python は次のインターフェースを提供します: WSGI: Web サーバー ゲートウェイ インターフェース
Web 開発者が必要とするのは、HTTP 要求に応答する関数を実装することだけです。 TCP 接続、HTTP の生の要求および応答形式には影響しません。
次の例は最も単純な Web アプリケーションです:
# hello.pydef application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [b'<h1 id="Hello-nbsp-Python-nbsp-web">Hello, Python web!</h1>']# server.py# 从wsgiref模块导入:from wsgiref.simple_server import make_server# 导入我们自己编写的application函数:from hello import application# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:httpd = make_server('', 8000, application) print('Serving HTTP on port 8000...')# 开始监听HTTP请求:httpd.serve_forever()
environ: すべての HTTP リクエスト情報を含む dict オブジェクト
start_response : HTTPレスポンスを送信する関数です。
2 つのスクリプトを同じディレクトリに配置し、server.py を実行し、http://127.0.0.1:8000 にアクセスして効果を確認します。
URL の処理
実際、Web アプリケーションはさまざまな URL を処理します。
hello.py
def application(environ, start_response): method = environ['REQUEST_METHOD'] path = environ['PATH_INFO'] if method=='GET' and path=='/': return handle_home(environ, start_response) if method=='POST' and path='/signin': return handle_signin(environ, start_response) ...を変更します
これは 2 つの URL、'/' と '/signin' を処理します
もちろん、このように書き続けることもできます...疲れていない場合。
テンプレートを使用する
上記の方法は面倒で時間がかかるため、高度なことを学びましょう:
flask
コードを見てください
from flask import Flaskfrom flask import request app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def home(): return '<h1 id="Home">Home</h1>'@app.route('/signin', methods=['GET'])def signin_form(): return '''<form action="/signin" method="post"> <p><input name="username"></p> <p><input name="password" type="password"></p> <p><button type="submit">Sign In</button></p> </form>'''@app.route('/signin', methods=['POST'])def signin(): # 需要从request对象读取表单内容: if request.form['username']=='admin' and request.form['password']=='password': return '<h3 id="Hello-nbsp-admin">Hello, admin!</h3>' return '<h3 id="Bad-nbsp-username-nbsp-or-nbsp-password">Bad username or password.</h3>'if __name__ == '__main__': app.run()
注意、これは単一のファイルです。
このスクリプトを分析してみましょう:
Flask は、Python のデコレータを通じて内部で URL を関数に自動的に関連付けます。
操作を開始した後、
'/' にアクセスすると、「HOME」という単語
'/signin' が表示されます。このとき、GET でアクセスすると、フォームに「admin」と「password」を入力し、「ログイン」をクリックします—>
「/signin」に POST 経由でアクセスしますが、表示されるのは「Hello, admin!」または「Bad username or password」です。
from flask import Flask, request, render_templateimport os
app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def home():
path = '/'
all_file = os.listdir(path) return render_template('home.html',all_file = all_file)if __name__ == '__main__':
app.run()
ここでは、ルート ディレクトリ内のすべてのファイルの名前を読み取り、それらを HTML テンプレート ページに渡します次に、ディレクトリ テンプレートを.py と同じディレクトリにあります。保存されているのはテンプレートです。このテンプレートの特別な点は、Python の命令と変数を使用して {{ を HTML
home.html# に記述できることです。 ##
{% for i in all_file %} <a href="/page/{{ i }}">{{ i }}</a>{% endfor %}{% %} }}内に書かれているのは変数なので、最終的に複数のタグが生成され、そのタグの名前がディレクトリ名になります。
上記の基本的なチュートリアルでは、Liao Xuefeng について言及しています。
これで基礎が完成しました。次のステップは完成品です。
完成品
前回クロールした写真を使用して Web サイトを構築します。良いアイデアです!
ここで、.py スクリプトと同じディレクトリに静的ディレクトリを作成して、画像を保存します。 (.py が置かれているディレクトリの外に画像が配置されている場合、画像はリンクされません)#beautiful_pic.pyfrom flask import Flaskfrom flask import requestfrom flask import render_templateimport os
app = Flask(__name__)#显示所有文件夹@app.route('/',methods=['GET','POST'])def list_all():
path = './static/mzitu/'
all_pic = os.listdir(path) return render_template('welcome.html',all_pic = all_pic)#具体展示图片@app.route('/<path>',methods=['GET','POST'])def list_pic(path):
#错误链接无法找到图片目录就提示错误链接
if(path not in os.listdir('./static/mzitu/')): return render_template('error.html')
pic_path = './static/mzitu/' + path
all_pic = os.listdir(pic_path) return render_template('pic.html',title = path,all_pic = all_pic)if __name__ == '__main__': #port为端口,host值为0.0.0.0即不单单只能在127.0.0.1访问,外网也能访问
app.run(host='0.0.0.0',port='2333')
次に、テンプレート ファイルwelcome.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>欢迎来到福利页面</title></head><body> {% for i in all_pic: %} <a href="/{{i}}">{{i}}</a> <br><br> {% endfor %}</body></html>pic.html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>{{ title }}</title></head><body> {% for i in all_pic %} <img src="/static/imghwm/default1.png" data-src="./static/mzitu/{{title}}/{{i}}" class="lazy" alt="{{i}}"> <br> {% endfor %}</body></html>
error .html
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>出错了</title></head><body> 你要访问的页面不存在... <br> <a href="/">点此返回首页</a></body></html>
関連する推奨事項:
Eclipse PyDev Django Mysql による Python Web 開発環境の構築_MySQL
##初めてWebに参入 開発するにはphp、python、rubyどれを学べばよいでしょうか?
以上がシンプルな Web サイトを構築する方法を教えます: Python 開発 Web サーバーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版
中国語版、とても使いやすい

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
