【Web开发】Python实现Web服务器(web2py)
🍺基于Python的Web服務(wù)器系列相關(guān)文章編寫(xiě)如下🍺:
文章目錄
- 1、簡(jiǎn)介
- 2、下載和安裝
- 3、快速入門(mén)
- 4、示例測(cè)試
- 4.1 Say hello
- 4.2 Let's count
- 4.3 Say my name
- 4.4 Postbacks
- 4.5 An image blog
- 5、PythonAnywhere
- 結(jié)語(yǔ)
1、簡(jiǎn)介
官方地址:
http://www.web2py.com
免費(fèi)開(kāi)源全棧框架,快速開(kāi)發(fā),可擴(kuò)展,安全和可移植數(shù)據(jù)庫(kù)驅(qū)動(dòng)的基于 Web 的應(yīng)用程序。編寫(xiě)和編程 Python (版本 3 和 2.7)。
web2py是一種免費(fèi)的、開(kāi)源的web開(kāi)發(fā)框架,用于敏捷地開(kāi)發(fā)安全的、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的web應(yīng)用;web2py采用Python語(yǔ)言編寫(xiě),并且可以使用Python編程。web2py是一個(gè)完整的堆棧框架,也就是說(shuō)它包含了開(kāi)發(fā)完整功能的web應(yīng)用所需的所有組件。
web2py支持CPython(C語(yǔ)言實(shí)現(xiàn))或Jython(Java語(yǔ)言實(shí)現(xiàn))。
開(kāi)發(fā)web應(yīng)用的兩個(gè)經(jīng)典方法是:
- 通過(guò)編程生成HTML代碼。
早期的CGI腳本遵循第一種模型。 - 將代碼嵌入HTML頁(yè)面中。
下列腳本遵循第二種模型,例如PHP[php](代碼用PHP編寫(xiě),類似C語(yǔ)言)、ASP(代碼用Visual Basic編寫(xiě))以及JSP(代碼用Java編寫(xiě))腳本。
web2py由如下組件構(gòu)成:
- 庫(kù)(libraries):提供web2py核心功能,可通過(guò)編程訪問(wèn)。
- web服務(wù)器:Rocket WSGI web服務(wù)器。
- 管理(admin)應(yīng)用:用于創(chuàng)建、設(shè)計(jì)和管理其它web2py應(yīng)用。admin提供了一個(gè)完整的基于web的集成開(kāi)發(fā)環(huán)境(IDE),用于開(kāi)發(fā)web2py應(yīng)用。它還包括其它功能,如基于web的測(cè)試和shell。
- 示例(examples)應(yīng)用:包含文檔和交互示例。應(yīng)用示例是官方網(wǎng)站web2py.com的副本,并包含epydoc文檔。
- 歡迎(welcome)應(yīng)用:是其它應(yīng)用的基本構(gòu)建模板。默認(rèn)時(shí),它包含一個(gè)純CSS層疊菜單和用戶認(rèn)證。
web2py鼓勵(lì)開(kāi)發(fā)人員將數(shù)據(jù)表達(dá)(Model)、數(shù)據(jù)表示(View)和應(yīng)用工作流(Controller)分離。web2py中一個(gè)請(qǐng)求的典型工作流描述如下:
web2py應(yīng)用程序如下圖所示: - 模型 - 表示數(shù)據(jù)表和數(shù)據(jù)庫(kù)表。
- 控制器 - 描述應(yīng)用程序邏輯和工作流程。
- 視圖 - 幫助渲染數(shù)據(jù)的顯示。
- 語(yǔ)言 - 描述如何將應(yīng)用程序中的字符string轉(zhuǎn)換為各種支持的語(yǔ)言。
- 靜態(tài)文件 - 不需要處理(如圖像,CSS樣式表等)。
- 關(guān)于和自述 - 項(xiàng)目的細(xì)節(jié)。
- 錯(cuò)誤 - 存儲(chǔ)應(yīng)用程序生成的錯(cuò)誤報(bào)告。
- 會(huì)話 - 存儲(chǔ)與每個(gè)特定用戶相關(guān)的信息。
- 數(shù)據(jù)庫(kù) - 存儲(chǔ)SQLite數(shù)據(jù)庫(kù)和其他表信息。
- 緩存 - 存儲(chǔ)緩存的應(yīng)用程序項(xiàng)。
- 模塊 - 模塊是其他可選的Python模塊。
- 隱私 - 包含的文件由控制器訪問(wèn),但不直接由開(kāi)發(fā)人員訪問(wèn)。
- 上傳 - 文件由模型訪問(wèn),但不直接由開(kāi)發(fā)人員訪問(wèn)。
2、下載和安裝
http://www.web2py.com/examples/default/download
下載之后解壓如下:
3、快速入門(mén)
在Windows操作系統(tǒng)上, 執(zhí)行: web2py.exe
默認(rèn)情況下,當(dāng)執(zhí)行完命令后,web2py會(huì)顯示開(kāi)始界面和一個(gè)控件讓你設(shè)置administrator密碼和網(wǎng)站啟動(dòng)的IP和端口地址。默認(rèn)情況下web2py會(huì)啟動(dòng)在127.0.0.1:8000這個(gè)地址上(就是本機(jī)的8000端口),但你可以選擇啟動(dòng)在可用的IP和端口上。你可以命令行查詢可用的IP地址,在Windows上運(yùn)行ipconfig,在OS X和Linux上運(yùn)行ifconfig。當(dāng)前我們假設(shè)web2py已經(jīng)啟動(dòng)在本機(jī)的8000端口上(127.0.0.1:8000)。如果web2py啟動(dòng)在0.0.0.0:8000上則使用所有可用的網(wǎng)卡。
- 現(xiàn)在我們點(diǎn)擊按鈕start server:
- 點(diǎn)擊按鈕admin:
- 輸入密碼之后,點(diǎn)擊登陸按鈕:
這個(gè)頁(yè)面顯示所有安裝在web2py上安裝的應(yīng)用,并且可以用admin賬戶管理。 web2py默認(rèn)包含3個(gè)應(yīng)用:
- 一個(gè)admin應(yīng)用,就是你正在使用的。
- 一個(gè)examples應(yīng)用,包含在線的文檔和一個(gè)web2py主頁(yè)的仿制品。
- 一個(gè)welcome應(yīng)用,這是一個(gè)基本的模板用來(lái)制作其他應(yīng)用。如果你創(chuàng)建新的應(yīng)用,這個(gè)應(yīng)用就是模板,包含歡迎界面。
在啟動(dòng)web2py應(yīng)用程序之后,使用上述URL,我們可以使用管理界面創(chuàng)建一個(gè)新模塊,例如“XiaoMu”。管理界面將要求密碼進(jìn)行認(rèn)證,因?yàn)楣芾韱T擁有添加和編輯任何新的Web應(yīng)用程序的所有權(quán)限。
讓新應(yīng)用程序的名稱為“XiaoMu”。一旦創(chuàng)建了新的應(yīng)用程序,用戶被重定向到包含相應(yīng)應(yīng)用程序的視圖,模型和控制器的頁(yè)面。
用戶可以通過(guò)提及以下URL來(lái)查看新創(chuàng)建的應(yīng)用程序:http://127.0.0.1:8000/XiaoMu
默認(rèn)情況下,用戶可以在點(diǎn)擊上述URL時(shí)查看以下屏幕。用于打印給定的網(wǎng)絡(luò)應(yīng)用程序的消息的“XiaoMu”,該變化在由default.py控制器。
web2py包括執(zhí)行創(chuàng)建,檢索,更新和刪除功能的應(yīng)用程序。該CRUD周期描述了一個(gè)數(shù)據(jù)庫(kù),這是執(zhí)著的基本功能。所有的應(yīng)用程序邏輯都寫(xiě)在模型中,這些模型由控制器檢索并在視圖的幫助下顯示給用戶。
web2py提供了一個(gè)用于管理,創(chuàng)建和刪除表或數(shù)據(jù)庫(kù)的界面,這被稱為“appadmin”。在實(shí)現(xiàn)表背后的邏輯之前,有必要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)及其關(guān)聯(lián)的表。
訪問(wèn)appadmin的URL:http://127.0.0.1:8000/XiaoMu/appadmin
在點(diǎn)擊URL時(shí),用戶將獲得與給定應(yīng)用程序關(guān)聯(lián)的表的列表。
在前面,我們已經(jīng)學(xué)會(huì)了如何使用GUI部件啟動(dòng)web2py服務(wù)器。
可以通過(guò)從命令行提示符啟動(dòng)服務(wù)器來(lái)跳過(guò)此窗口。
每當(dāng)web2py服務(wù)器啟動(dòng)時(shí),它都會(huì)創(chuàng)建一個(gè)文件“ parameters_8000.py ”,其中所有密碼都以散列形式存儲(chǔ)。為了更安全的目的,可以使用以下命令行 -
python web2py.py -a "<recycle>" -i 127.0.0.1 -p 80004、示例測(cè)試
4.1 Say hello
- default.py修改如下(Controller):
- default/index.html修改如下(View):
For debugging purposes you can always append:{{=response.toolbar()}}
- 瀏覽器訪問(wèn)如下:
4.2 Let’s count
- default.py修改如下(Controller):
- default/index.html修改如下(View):
- 瀏覽器訪問(wèn)如下:
4.3 Say my name
- default.py修改如下(Controller):
- 新增default/first.html如下(View):
- 新增default/second.html如下(View):
- 瀏覽器訪問(wèn)如下:
4.4 Postbacks
- default.py修改如下(Controller):
- 新增default/first.html如下(View):
- 新增default/second.html如下(View):
- 瀏覽器訪問(wèn)如下:
4.5 An image blog
創(chuàng)建一個(gè)新的應(yīng)用:xiaomu_images,
然后編輯它。
- db.py修改如下(Model):
瀏覽器訪問(wèn):http://127.0.0.1:8000/xiaomu_images/appadmin
依次通過(guò)界面添加圖片記錄到數(shù)據(jù)庫(kù)中:
- default.py修改如下(Controller):
- 新增default/show.html(View):
- 瀏覽器訪問(wèn):http://127.0.0.1:8000/xiaomu_images/default/show/1
5、PythonAnywhere
- (1)打開(kāi)web2py首頁(yè)
- (2)點(diǎn)擊按鈕:try it now online
- (3)填寫(xiě)用戶名后,點(diǎn)擊give me my web2py
- 訪問(wèn)網(wǎng)址如下:http://xiaomu.pythonanywhere.com/welcome/default/index
結(jié)語(yǔ)
如果您覺(jué)得該方法或代碼有一點(diǎn)點(diǎn)用處,可以給作者點(diǎn)個(gè)贊,或打賞杯咖啡;╮( ̄▽ ̄)╭
如果您感覺(jué)方法或代碼不咋地//(ㄒoㄒ)//,就在評(píng)論處留言,作者繼續(xù)改進(jìn);o_O???
如果您需要相關(guān)功能的代碼定制化開(kāi)發(fā),可以留言私信作者;(????)
感謝各位大佬童鞋們的支持!( ′ ▽′ )ノ ( ′ ▽′)っ!!!
總結(jié)
以上是生活随笔為你收集整理的【Web开发】Python实现Web服务器(web2py)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vue 分页添加序号
- 下一篇: websocket python爬虫_p