在Python3下使用tornado和SQLAlchemy实现一个简单的MVC网站

本文讲述了在Python3下如何使用tornado及
摘要由CSDN通过智能技术生成

        本文讲述了在Python3下如何使用tornado框架及sqlalchemy对MySQL数据库进行简单的增、删、改、查操作。整个流程走通之后,就可以在实际开发中对本文中的例子进行重构、优化,以满足产品需要。

        环境:Window7 x64、MySQL 5.6.21、Python 3.4.1、tornado 4.0.2、MySQL-Connector-Python 2.0.1、SQLAlchemy 0.9.8

        以上这些软件的安装方法在我的另一篇博文里,如有需要请移步至:构建一个完整的基于Python3的Web开发环境

        在本文的例子中,我们维护一个用户数据库,数据库中包含了用户名、年龄、性别、得分、主修专业。可以通过WEB页面来增加、删除用户,以及修改、显示所有的用户信息。

一、在MySQL中建立数据库及相关表

        我们的重点是用最简单的步骤实现整个MVC流程,所以建立数据库的操作就不使用SQLAlchemy来做了。

        先在Windows的命令提示符下连接到MySQL,并建立一个名为UserManager的数据库。命令如下所示:

e:\>mysql -u root -p
password:********
mysql>CREATE DATABASE UserManager;
        注意第一行-u后面的root是数据库的用户名,应当按照实际情况输入。password后面的密码也要按照你自己系统的实际情况填写。

        然后键入命令 USE UserManager 进入到UserManager数据库中,新建一个如下结构的表user:

CREATE TABLE user(
        id int(16) not null primary key auto_increment,
        user_name varchar(32) not null,
        user_age int(3) not null,
        user_sex int(1) not null,
        user_score int(3) not null,
        user_subject varchar(32) not null );
        之后我们所有的操作都是针对这张表进行的。

二、建立HTML模板页

        我们使用tornado内置的模板进行HTML的渲染,速度虽然不是最快的,但是简单实用。熟练之后可以用Jinja2等更专业的模板替换掉tornado内置的模板。

        tornado内置模板的语法非常简单,语法块默认由{% ... ... %}包含,变量则由{ { ... ... }}包含。当然也以设置为其它样式的Limiter。

        本文的例子中包含两个WEB页面:UserManager.html以及EditUserInfo.html。下面分别是这两个页面的代码。

        页面 UserManager.html:

<html>
<head>
    <!--这里的{
  {title}}表示title这个变量的内容由服务器端产生并填写到该位置-->
    <title>{
  {title}}</title>
<body>
<center><h1>Welcome to UserManager</h1></center>
<hr/>
<center>
    <!--表单以POST方式提交到AddUser-->
    <form name = 'new_user' action = 'AddUser' method = 'post'>
            Name:<input type = 'text' name = 'user_name' />
            Age:<input type = 'text' name = 'user_age' />
            Sex:<input type = 'text' name = 'user_sex' />
            Score:<input type = 'text' name = 'user_score' />
            Subject:<input type = 'text' name = 'user_subject' />
            <input type = 'submit' value = 'Submit' />
            <input type = 'reset' value = 'Reset' />
    </form>
<hr/>
<table border = 1>
        <tr style = 'font-weight:bold' align = 'center'>
                <td width = '200' >Name</td>
                <td width = '100' >Age</td>
                <td width = '100' >Sex</td>
                <td width = '100' >Score</td>
                <td width = '200' >Subject</td>
                <td width = '100' ></td>
                <td width = '100' ></td>
        </tr>
        <!--users是一个由服务器端通过查询数据库而产生的列表,这里用for语句可以把用户信息全部输出-->
        {% for user in users %}
        <tr align 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值