當前位置:首頁 » 編程語言 » python搭建web

python搭建web

發布時間: 2024-04-13 19:34:42

python做網頁後端

Python可以用於網頁後端開發。以下是一些常用的Python Web框架:

  • Django:Django是一種流行的Web框架,用於快速開發高質量的Web應用程序。它提供了許多內置的功能,如ORM、模板引擎和管理界面。Django還有許多可用的插件和擴展,可以用於構建各種Web應用程序。

  • Flask:Flask是一種輕量級的Web框架,用於構建缺祥小型Web應用程序和API。它非常靈活,可以根據需要擴展和自定義。Flask沒有內置的ORM或模板引擎,但伏沖它可以與其他Python庫集成,如SQLAlchemy和Jinja2。

  • Pyramid:Pyramid是另一種流行的Web框架,用於構建大型和復雜的Web應用程序。它具有高度的可定製性和靈活性,可以根據需要擴展和伏廳搏自定義。Pyramid還提供了內置的ORM和模板引擎。

  • 除了這些框架外,還有其他的Python Web框架可供選擇。無論您選擇哪個框架,都應該熟悉Python的基礎語法和數據類型,並了解Web開發的基礎知識。

    希望這可以回答您的問題!

② python鑳界敤鏉ュ共鍢

python鑳界敤鏉Web寮鍙戙

Python鏄涓縐嶈В閲婂瀷鐨勮剼鏈璇璦錛屽叿鏈夐珮寮鍙戞晥鐜囧拰蹇閫熻繍琛岀殑鐗圭偣銆傚湪Web寮鍙戜腑錛孭ython鍙浠ョ敤浜庢惌寤虹綉絝欏拰Web搴旂敤紼嬪簭錛屽寘鎷浣跨敤Django銆丗lask絳夋嗘灦榪涜屽紑鍙戙傛ゅ栵紝Python榪樺彲浠ョ敤浜庣綉緇滅紪紼嬶紝濡俉eb寮鍙戙佺綉緇滅埇鉶鍜岀綉緇滃畨鍏ㄧ瓑銆

嫻佽岀殑緗戠粶緙栫▼搴撳寘鎷珼jango銆丗lask銆丷equests銆丼crapy絳夈傛諱箣錛孭ython鍦╓eb寮鍙戜腑鍏鋒湁騫挎硾鐨勫簲鐢ㄩ嗗煙鍜屼赴瀵岀殑妯℃澘鎶鏈銆

Python鍦ㄥ悇涓緙栫▼璇璦涓姣旇緝閫傚悎鏂版墜瀛︿範錛孭ython瑙i噴鍣ㄦ槗浜庢墿灞曪紝鍙浠ヤ嬌鐢–銆丆錛嬶紜鎴栧叾浠栧彲浠ラ氳繃C璋冪敤鐨勮璦鎵╁睍鏂扮殑鍔熻兘鍜屾暟鎹綾誨瀷銆

python璇璦浼樼偣

Python鏄涓縐嶄唬琛ㄧ畝鍗曚富涔夋濇兂鐨勮璦銆傞槄璇諱竴涓鑹濂界殑Python紼嬪簭灝辨劅瑙夊儚鏄鍦ㄨ昏嫳璇涓鏍楓傚畠浣誇綘鑳藉熶笓娉ㄤ簬瑙e喅闂棰樿屼笉鏄鍘繪悶鏄庣櫧璇璦鏈韜銆侾ython鐨勫簳灞傛槸鐢–璇璦鍐欑殑錛屽緢澶氭爣鍑嗗簱鍜岀涓夋柟搴撲篃閮芥槸鐢–鍐欑殑錛岃繍琛岄熷害闈炲父蹇銆

Python鏄疐LOSS錛堣嚜鐢/寮鏀炬簮鐮佽蔣浠訛級涔嬩竴銆備嬌鐢ㄨ呭彲浠ヨ嚜鐢卞湴鍙戝竷榪欎釜杞浠剁殑鎷瘋礉銆侀槄璇誨畠鐨勬簮浠g爜銆佸瑰畠鍋氭敼鍔ㄣ佹妸瀹冪殑涓閮ㄥ垎鐢ㄤ簬鏂扮殑鑷鐢辮蔣浠朵腑銆侳LOSS鏄鍩轟簬涓涓鍥浣撳垎浜鐭ヨ瘑鐨勬傚康銆

鍦ㄨ$畻鏈哄唴閮錛孭ython瑙i噴鍣ㄦ妸婧愪唬鐮佽漿鎹㈡垚縐頒負瀛楄妭鐮佺殑涓闂村艦寮忥紝鐒跺悗鍐嶆妸瀹冪炕璇戞垚璁$畻鏈轟嬌鐢ㄧ殑鏈哄櫒璇璦騫惰繍琛屻傝繖浣垮緱浣跨敤Python鏇村姞綆鍗曘備篃浣垮緱Python紼嬪簭鏇村姞鏄撲簬縐繪嶃

③ python 進行web 開發 怎麼配置環境

Python的目前有兩個版本,Python 2.7.5 和 Python 3.3.2。Python 3.x 與 2.x 不僅僅是版本的新舊的區別那麼簡單,Python3.x 是一個全新的東西。

1、下面的 Python 2.7.5 這個版本是 .msi 格式的,所以直接安裝即可,將 Python 2.7 安裝在了 E:Python 下。

然後就是配置環境變數, 具體不多說,直接附圖:

④ windows下python怎麼搭建web伺服器

python創建一歷搜哪個最簡漏扒單httpwebserver伺服器肢碼的方法:stHandlerHandler==BaseHTTPServer.HTTPServerProtocol=HTTP/1.0ifsys.argv[1:]:port=int(sys.argv[1])else:port=8000server_address=(飗.0.0.1',port)Handler.protocol_version=Protocolhttpd=Server(server_address,Handler)print(ServingHTTP)httpd.serve_forever()

⑤ 如何用python做web開發 django環境配置

下載
python-2.7.2.msi
Django-1.3.1.tar.gz
Django暫時只支持python
2.4
~
2.7,
在Django-1.3.1\docs\intro\install.txt中有說明:
Being
a
Python
Web
framework,
Django
requires
Python.
It
works
with
any
Python
version
from
2.4
to
2.7
(e
to
backwards
incompatibilities
in
Python
3.0,
Django
does
not
currently
work
with
Python
3.0;
安裝python-2.7.2,並添加環境變數
D:\Python27;D:\Python27\Scripts;
命令行進入Django-1.3.1目錄,
安裝django
python
setup.py
install
Django提供了tutorial
Django-1.3.1\docs\intro
新建站點
E:\python>django-admin.py
startproject
mysite
啟動django自帶的web伺服器
E:\python>cd
mysite
E:\python\mysite>manage.py
runserver
Validating
models...
0
errors
found
Django
version
1.3.1,
using
settings
'mysite.settings'
Development
server
is
running
at
http://127.0.0.1:8000/
Quit
the
server
with
CTRL-BREAK.
在瀏覽器中輸入
http://127.0.0.1:8000/
瀏覽頁面
ps:
在windows7中按上述步驟配置好後,出現下列情況
D:\work\python>django-admin.py
startproject
mysite
Usage:
django-admin.py
subcommand
[options]
[args]
...
很顯然django-admin.py不參識別startproject命令,其它命令也不能識別。不過,另一種方式卻可以
D:\Python27\Scripts>python
django-admin.py
startproject
mysite
這說明django-admin.py
後面的參數不能傳遞進去,可以通過修改注冊表實現。
輸入regedit,
進入
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command

"C:\Python26\python.exe"
"%1"
change
it
to
"C:\Python26\python.exe"
"%1"
%*
成功解決了

⑥ 用python開發一個物流web代碼

詳細如下。
一個名叫「Remi」的Python庫,就是用來開發WebApp的。1.Remi庫簡介
Remi是一個用於Python應用程序的GUI庫,它將應用程序的界面轉換為HTML,以便在Web瀏覽器中呈現。嚴格地說,我們不能用Remi庫來編寫傳統的網站,而只能將它當成Web形式的Tkinter庫(Python最經典的圖形界面庫)來使用。如果要做網站,還是要老老實實學點前端知識,然後結合Python的Flask框架來開發。
2.Remi庫的安裝
Remi可以採用pip命令安裝
3.Remi庫的代碼
運行這段代碼後,瀏覽器會自動打開一個本地的網址,出現如下圖所示的界面。將「127.0.0.1」換成IP地址,就能通過其他電腦、手機的瀏覽器來訪問了。
點擊「請點擊這里」按鈕,界面會發生變化,如下圖所示。不用寫復雜的JS代碼,在Remi的支持下,網頁交互就變得這么簡單。如果需要了解更多關於Remi庫的資源,可以訪問github或者官方文檔。
github地址:https://github.com/dddomodossola/remi
文檔地址:https://remi.readthedocs.io/en/latest/
基於Remi編寫基於Web的物聯網應用程序,既然是編寫物聯網應用程序,那麼肯定還需要安裝siot庫。這也是「虛穀物聯」團隊開發的Python庫,因為MQTT的官方Python庫(paho-mqtt)編寫出來的代碼冗長,不好理解,於是委託上海蘑菇雲團隊在paho-mqtt的基礎上進行了新的封裝。siot庫可以通過pip命令來安裝,命令如下:
pipinstallsiot

⑦ 使用python創建web靜態網站

打開pyCharm企業版軟體,創建一個Django項目,其中Django是一個Web框架,用於幫助開發互動式網站的工具。生成項目文件如下圖所示:

在url.py文件中添加為:

在view.py文件中添加:

在templates文件夾中新建index.html文件

其中<a>為超鏈接標簽,在此使用了一個模板標簽,是用大括弧和百分號({% %})表示的。{% url 'namespacename:index' %}是一個模板標簽,指向url.py中index的URL模式匹配。在這個實例中,namespacename是對應的命名空間名稱,index是URL模式。

⑧ 純 Python 寫一個 Web 框架,就是這么簡單

造輪子是最好的一種學習方式,本文嘗試從0開始造個Python Web框架的輪子,我稱它為 ToyWebF 。

本文操作環境為:MacOS,文中涉及的命令,請根據自己的系統進行替換。

ToyWebF的簡單特性:

下面我們來實現這些特性。

首先,我們需要安裝gunicorn,回憶一下Flask框架,該框架有內置的Web伺服器,但不穩定,所以上線時通常會替換成uWSGI或gunicorn,這里不搞這個內置Web服務,直接使用gunicorn。

我們創建新的目錄與Python虛擬環境,在該虛擬環境中安裝gunicorn

在啥都沒有的情況下,構建最簡單的Web服務,在ToyWebF目錄下,創建app.py與api.py文件,寫入下面代碼。

運行 gunicorn app:app 訪問 http://127.0.0.1:8000 ,可以看見 Hello, World! ,但現在請求體中的參數在environ變數中,難以解析,我們返回的response也是bytes形式。

我們可以使用webob庫,將environ中的數據轉為Request對象,將需要返回的數據轉為Response對象,處理起來更加直觀方便,直接通過pip安裝一下。

然後修改一下API類的 __call__方法 ,代碼如下。

上述代碼中,通過webob庫的Request類將environ對象(請求的環境信息)轉為容易處理的request,隨後調用handle_request方法對request進行處理,處理的結果,通過response對象返回。

handle_request方法在ToyWebF中非常重要,它會匹配出某個路由對應的處理方法,然後調用該方法處理請求並將處理的結果返回,在解析handle_request前,需要先討論路由注冊實現,代碼如下。

其實就是將路由和方法存到self.routes字典中,可以通過route裝飾器的形式將路由和方法關聯,也可以通過add_route方法關聯,在app.py中使用一下。

因為url中可以存在變數,如 @app.route("/hello/{name}") ,所以在匹配時,需要進行解析,可以使用正則匹配的方式進行匹配,parse這個第三方庫已經幫我們實現了相應的正則匹配邏輯,pip安裝使用一下則可。

這里定義find_handler方法來實現對self.routes的遍歷。

了解了路由與方法關聯的原理後,就可以實現handle_request方法,該方法主要的路徑就是根據路由調度對應的方法,代碼如下。

在該方法中,首先實例化webob庫的Response對象,然後通過self.find_handler方法獲取此次請求路由對應的方法和對應的參數,比如。

它將返回hello方法對象和name參數,如果是 /hello/二兩 ,那麼name就是二兩。

因為route裝飾器可能裝飾器的類對象,比如。

此時self.find_handler方法返回的hanler就是個類,但我們希望調用的是類中的get、post、delete等方法,所以需要一個簡單的判斷邏輯,通過inspect.isclass方法判斷handler如果是類對象,那麼就通過getattr方法獲取類對象實例的中對應的請求方法。

如果類對象中沒有該方法屬性,則拋出該請求類型不被允許的錯誤,如果不是類對象或類對象中存在該方法屬性,則直接調用則可。

此外,如果方法的路由並沒有注冊到self.routes中,即404的情況,定義了defalut_response方法返回其中內容,代碼如下。

如果handle_request方法中調度的過程出現問題,則直接raise將錯誤拋出。

至此,一個最簡單的web服務就編寫完成了。

回顧Flask,Flask可以支持HTML、CSS、JavaScript等靜態文件,利用模板語言,可以構建出簡單但美觀的Web應用,我們讓TopWebF也支持這一功能,最終實現圖中的網站,完美兼容靜態文件。

Flask使用了jinja2作為其html模板引擎,ToyWebF同樣使用jinja2,jinja2其實實現一種簡單的DSL(領域內語言),讓我們可以在HTML中通過特殊的語法改變HTML的結構,該項目非常值得研究學習。

首先 pip install jinja2 ,然後就可以使用它了,在ToyWebF項目目錄中創建templates目錄,以該目錄作為默認的HTML文件根目錄,代碼如下。

首先利用jinja2的FileSystemLoader類將file system中的某個文件夾作為loader,然後初始化Environment。

在使用的過程中(即調用template方法),通過get_template方法獲得具體的某個模板並通過render方法將對應的內容傳遞給模板中的變數。

這里我們不寫前端代碼,直接去互聯網中下載模板,這里下載了Bootstrap提供的免費模板,可以自行去 https://startbootstrap.com/themes/freelancer/ 下載,下載完後,你會獲得index.html以及對應的css、jss、img等文件,將index.html移動到ToyWebF/templates中並簡單修改了一下,添加一些變數。

然後在app.py文件中為index.html定義路由以及需要的參數。

至此html文件的支持就完成了,但此時的html無法正常載入css和js,導致頁面布局非常醜陋且交互無法使用。

接著就讓ToyWebF支持css、js,首先在ToyWebF目錄下創建static文件夾用於存放css、js或img等靜態文件,隨後直接將前面下載的模板,其中的靜態文件復制到static中則可。

通過whitenoise第三方庫,可以通過簡單的幾行代碼讓web框架支持css和js,不需要依賴nginx等服務,首先 pip install whitenoise ,隨後修改API類的 __init__ 方法,代碼如下。

其實就是通過WhiteNoise將self.wsgi_app方法包裹起來,在調用API的 __call__ 方法時,直接調用self.whitenoise。

此時,如果請求web服務獲取css、js等靜態資源,WhiteNoise會獲取其內容並返回給client,它在背後會匹配靜態資源在系統中對應的文件並將其讀取返回。

至此,一開始的網頁效果就實現好了。

web服務如果出現500時,默認會返回 internal server error ,這顯得比較丑,為了讓框架使用者可以自定義500時返回的錯誤,需要添加一些代碼。

首先API初始化時,初始self.exception_handler對象並定義對應的方法添加自定義的錯誤

在handler_request方法進行請求調度時,調度的方法執行邏輯時報500,此時不再默認將錯誤拋出,而是先判斷是否有自定義錯誤處理。

在app.py中,自定義錯誤返回方法,如下。

custom_exception_handler方法只返回自定義的一段話,你完全可以替換成美觀的template。

我們可以實驗性定義一個路由來看效果。

Web服務的中間件也可以理解成鉤子,即在請求前可以對請求做一些處理或者返回Response前對Response做一下處理。

為了支持中間件,在TopWebF目錄下創建middleware.py文件,在編寫代碼前,思考一下如何實現?

回顧一下現在請求的調度邏輯。

1.通過routes裝飾器關聯路由和方法 2.通過API.whitenoise處理 3.如果是請求API介面,那麼會將參數傳遞給API.wsgi_app 4.API.wsgi_app最終會調用API.handle_request方法獲取路由對應的方法並調用該方法執行相應的邏輯

如果希望在request前以及response後做相應的操作,那麼其實就需要讓邏輯在API.handle_request前後執行,看一下代碼。

其中add方法會實例化Middleware對象,該對象會將當前的API類實例包裹起來。

Middleware.handle_request方法其實就是在self.app.handle_request前調用self.process_request方法處理request前的數據以及調用self.process_response處理response後的數據,而核心的調度邏輯,依舊交由API.handle_request方法進行處理。

這里的代碼可能會讓人感到疑惑, __call__ 方法和handle_request方法中都有self.app.handle_request(request),但其調用對象似乎不同?這個問題暫時放一下,先繼續完善代碼,然後再回來解釋。

接著在api.py中為API創建middleware屬性以及添加新中間件的方法。

隨後,在app.py中,自定義一個簡單的中間件,然後調用add_middleware方法將其添加。

定義好中間件後,在請求調度時,就需要使用中間件,為了兼容靜態文件的情況,需要對css、js、ing文件的請求路徑做一下兼容,在其路徑中加上/static前綴

緊接著,修改API的 __call__ ,兼容中間件和靜態文件,代碼如下。

至此,中間件的邏輯就完成了。

但代碼中依舊有疑惑,Middleware類中的 __call__ 方法和handle_request方法其調用的self.app到底是誰?

為了方便理解,這里一步步拆解。

如果沒有添加新的中間件,那麼請求的調度邏輯如下。

在沒有添加中間件的情況下,self.app其實就是API本身,所以 middleware.__call__ 中的self.app.handle_request就是調用API.handle_request。

如果添加了新的中間件,如上述代碼中添加了名為SimpleCustomMiddleware的中間件,此時的請求調度邏輯如下。

因為注冊中間件時,Middleware.add方法替換了原始Middleware實例中的app對象,將其替換成了SimpleCustomMiddleware,而SimpleCustomMiddleware也有app對象,SimpleCustomMiddleware中的app對象,才是API類實例。

在請求調度的過程中,就會觸發Middleware類的handle_request方法,該方法就會執行中間件相應的邏輯去處理request和response中的數據。

當然,你可以通過Middleware.add方法添加多個中間件,這就會構成棧式調用的效果,代碼如下。

啟動web服務後,其執行效果如下。

熱點內容
mf90pos機密碼是什麼 發布:2024-05-04 22:24:04 瀏覽:749
編譯預處理和函數區別 發布:2024-05-04 22:16:49 瀏覽:430
java復選框 發布:2024-05-04 22:13:24 瀏覽:528
安卓怎麼玩頁游 發布:2024-05-04 22:03:17 瀏覽:141
編譯器後面的代碼消失 發布:2024-05-04 22:02:11 瀏覽:60
openwrt編譯ipk 發布:2024-05-04 22:00:25 瀏覽:829
管理雲伺服器 發布:2024-05-04 21:36:31 瀏覽:552
給linux虛擬機傳文件 發布:2024-05-04 21:36:28 瀏覽:313
加密手機在哪裡 發布:2024-05-04 21:18:59 瀏覽:191
掃雷電腦配置低怎麼辦 發布:2024-05-04 21:07:37 瀏覽:821