為Python的web框架編寫MVC配置來使其運行的教程
現(xiàn)在,ORM框架、Web框架和配置都已就緒,我們可以開始編寫一個最簡單的MVC,把它們?nèi)繂悠饋怼?/p>
通過Web框架的@decorator和ORM框架的Model支持,可以很容易地編寫一個處理首頁URL的函數(shù):
# urls.py
from transwarp.web import get, view
from models import User, Blog, Comment
@view('test_users.html')
@get('/')
def test_users():
users = User.find_all()
return dict(users=users)
@view指定的模板文件是test_users.html,所以我們在模板的根目錄templates下創(chuàng)建test_users.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test users - Awesome Python Webapp</title>
</head>
<body>
<h1>All users</h1>
{% for u in users %}
<p>{{ u.name }} / {{ u.email }}</p>
{% endfor %}
</body>
</html>
接下來,我們創(chuàng)建一個Web App的啟動文件wsgiapp.py,負責(zé)初始化數(shù)據(jù)庫、初始化Web框架,然后加載urls.py,最后啟動Web服務(wù):
# wsgiapp.py import logging; logging.basicConfig(level=logging.INFO) import os from transwarp import db from transwarp.web import WSGIApplication, Jinja2TemplateEngine from config import configs # 初始化數(shù)據(jù)庫: db.create_engine(**configs.db) # 創(chuàng)建一個WSGIApplication: wsgi = WSGIApplication(os.path.dirname(os.path.abspath(__file__))) # 初始化jinja2模板引擎: template_engine = Jinja2TemplateEngine(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates')) wsgi.template_engine = template_engine # 加載帶有@get/@post的URL處理函數(shù): import urls wsgi.add_module(urls) # 在9000端口上啟動本地測試服務(wù)器: if __name__ == '__main__': wsgi.run(9000)
如果一切順利,可以用命令行啟動Web服務(wù)器:
$ python wsgiapp.py
然后,在瀏覽器中訪問http://localhost:9000/。
如果數(shù)據(jù)庫的users表什么內(nèi)容也沒有,你就無法在瀏覽器中看到循環(huán)輸出的內(nèi)容??梢宰约涸贛ySQL的命令行里給users表添加幾條記錄,然后再訪問:

相關(guān)文章
PyQT中QTableWidget如何根據(jù)單元格內(nèi)容設(shè)置自動寬度
這篇文章主要介紹了PyQT中QTableWidget如何根據(jù)單元格內(nèi)容設(shè)置自動寬度問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
在Anaconda3下使用清華鏡像源安裝TensorFlow(CPU版)
這篇文章主要介紹了在Anaconda3下使用清華鏡像源安裝TensorFlow(CPU版),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Django中如何使用celery異步發(fā)送短信驗證碼詳解
Celery是Python開發(fā)的分布式任務(wù)調(diào)度模塊,這篇文章主要給大家介紹了關(guān)于Django中如何使用celery異步發(fā)送短信驗證碼的相關(guān)資料,主要內(nèi)容包括基礎(chǔ)介紹、工作原理、完整代碼等方面,需要的朋友可以參考下2021-09-09
python 獲取一個值在某個區(qū)間的指定倍數(shù)的值方法
今天小編就為大家分享一篇python 獲取一個值在某個區(qū)間的指定倍數(shù)的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

