为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 获取网页编码方式实现代码
Mar 11 Python
python实现机器人行走效果
Jan 29 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
利用ImageAI库只需几行python代码实现目标检测
Aug 09 Python
Python绘制股票移动均线的实例
Aug 24 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
Python中的xlrd模块使用整理
Jun 15 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
php生成微信红包数组的方法
2019/09/05 PHP
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
js获取内联样式的方法
2015/01/27 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
jQuery为某个div加入行样式
2017/06/09 jQuery
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
Pytorch之保存读取模型实例
2019/12/30 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
学生发电厂实习自我鉴定
2013/09/22 职场文书
会计专业自我鉴定范文
2013/10/06 职场文书
即将毕业大学生自荐信
2014/01/24 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
社区党建工作方案
2014/06/10 职场文书
学习十八大标语
2014/10/09 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL