現在,ORM框架、Web框架和配置都已就緒,我們可以開始編寫一個最簡單的MVC,把它們全部啟動起來。
通過Web框架的@decorator和ORM框架的Model支持,可以很容易地編寫一個處理首頁URL的函數:
# urls.pyfrom transwarp.web import get, viewfrom 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下創建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>接下來,我們創建一個Web App的啟動文件wsgiapp.py,負責初始化數據庫、初始化Web框架,然后加載urls.py,最后啟動Web服務:
# wsgiapp.pyimport logging; logging.basicConfig(level=logging.INFO)import osfrom transwarp import dbfrom transwarp.web import WSGIApplication, Jinja2TemplateEnginefrom config import configs# 初始化數據庫:db.create_engine(**configs.db)# 創建一個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處理函數:import urlswsgi.add_module(urls)# 在9000端口上啟動本地測試服務器:if __name__ == '__main__': wsgi.run(9000)
如果一切順利,可以用命令行啟動Web服務器:
$ python wsgiapp.py
然后,在瀏覽器中訪問http://localhost:9000/。
如果數據庫的users表什么內容也沒有,你就無法在瀏覽器中看到循環輸出的內容??梢宰约涸贛ySQL的命令行里給users表添加幾條記錄,然后再訪問:

新聞熱點
疑難解答
圖片精選