为Python的web框架编写MVC配置来使其运行的教程


Posted in Python onApril 30, 2015

现在,ORM框架、Web框架和配置都已就绪,我们可以开始编写一个最简单的MVC,把它们全部启动起来。

通过Web框架的@decorator和ORM框架的Model支持,可以很容易地编写一个处理首页URL的函数:

# 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下创建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.py
import logging; logging.basicConfig(level=logging.INFO)
import os

from transwarp import db
from transwarp.web import WSGIApplication, Jinja2TemplateEngine

from 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 urls
wsgi.add_module(urls)

# 在9000端口上启动本地测试服务器:
if __name__ == '__main__':
  wsgi.run(9000)

如果一切顺利,可以用命令行启动Web服务器:

$ python wsgiapp.py

然后,在浏览器中访问http://localhost:9000/。

如果数据库的users表什么内容也没有,你就无法在浏览器中看到循环输出的内容。可以自己在MySQL的命令行里给users表添加几条记录,然后再访问:

为Python的web框架编写MVC配置来使其运行的教程

Python 相关文章推荐
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
python 设置输出图像的像素大小方法
Jul 04 Python
python求一个字符串的所有排列的实现方法
Feb 04 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
pandas使用之宽表变窄表的实现
Apr 12 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Python os库常用操作代码汇总
Nov 03 Python
Python获取百度热搜的完整代码
Apr 07 Python
在Python的web框架中配置app的教程
Apr 30 #Python
python实现从ftp服务器下载文件的方法
Apr 30 #Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 #Python
编写Python的web框架中的Model的教程
Apr 29 #Python
python获取本地计算机名字的方法
Apr 29 #Python
Python中编写ORM框架的入门指引
Apr 29 #Python
python获取本机mac地址和ip地址的方法
Apr 29 #Python
You might like
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP错误处理函数
2016/04/03 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
Python中replace方法实例分析
2014/08/20 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Python调用JavaScript代码的方法
2020/10/27 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
实习生体会的自我评价范文
2013/11/28 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
购房意向书范本
2014/04/01 职场文书
集中整治工作方案
2014/05/01 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
初一军训感言
2015/08/01 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书