Tornado 网站demo 三

模板

修改index.py

#!/usr/bin/env Python
# coding=utf-8

import tornado.web
import methods.readdb as mrd

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        usernames = mrd.select_columns(table="users",column="username")
        one_user = usernames[0][0]
        self.render("index.html", user=one_user)

    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        user_infos = mrd.select_table(table="users",column="*",condition="username",value=username)
        if user_infos:
            db_pwd = user_infos[0][2]
            if db_pwd == password:
                self.write("welcome you: " + username)
            else:
                self.write("your password was not right.")
        else:
            self.write("There is no thi user.")

readdb.py 添加select_columns 方法

def select_columns(table, column ):
    sql = "select " + column + " from " + table
    cur.execute(sql)
    lines = cur.fetchall()
    return lines

修改index.html文件

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Learning Python</title>
</head>

<body>
    <h2> 登录页面</h2>
    <p>用用户名为:{{user}}登录</p>
    <form method="POST">
        <p><span>UserName:</span><input type="text" id="username"/></p>
        <p><span>Password:</span><input type="password" id="password" /></p>
        <p><input type="BUTTON" value="登录" id="login" /></p>
    </form>
<script src="{{static_url(‘js/jquery-3.2.1.min.js‘)}}"></script>
<script src="{{static_url(‘js/script.js‘)}}"></script>
</body>

要求用户正确登录之后,跳转到另外一个页面,并且在那个页面中显示出用户的完整信息。

先修改 url.py 文件,在其中增加一些内容

#!/usr/bin/env Python
# coding=utf-8
"""
the url structure of website
"""

#!/usr/bin/env Python
# coding=utf-8
"""
the url structure of website
"""

from handlers.index import IndexHandler
from handlers.user import UserHandler

url = [
    (r‘/‘, IndexHandler),
    (r‘/user‘, UserHandler),
]

然后就建立 handlers/user.py 文件

#!/usr/bin/env Python
# coding=utf-8

import tornado.web
import methods.readdb as mrd

class UserHandler(tornado.web.RequestHandler):
    def get(self):
        username = self.get_argument("user")
        user_infos = mrd.select_table(table="users",column="*",condition="username",value=username)
        self.render("user.html", users = user_infos)
时间: 2024-11-05 09:23:26

Tornado 网站demo 三的相关文章

Tornado 网站demo 二

连接数据库 methods 中建立一个文件 db.py 分别建立起连接对象和游标对象 #!/usr/bin/env Python # coding=utf-8 import pymysql conn = pymysql.connect(host="localhost", user="root", passwd="123456", db="testdb", port=3306, charset="utf8")

使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

原文:使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置 摘要 讲解在IntelliJ IDEA中,如何进行Mysql数据库的配置 目录[-] 文章已针对IDEA 15做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码. 六.数据库配置 1.创建Mysql数据库 2.IntelliJ IDEA导入数据库 3.配置数据库 更新: 转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生). 注:在阅读本文前,请先阅读: 使用IntelliJ ID

2016年1月25日 《1024伐木累》-小白篇之开发网站,三天!(中篇-2奇怪的IE)-总章节十一

往期回顾:  老王的“先见之明”,解决了困扰耗仔三人的大难题.顺利安装完开发工具,大家投入紧张的工作.航空部领导的突然闯入,IE不兼容,页面错乱,摆在三人面前的形势依然严峻.第一次见这阵仗的耗仔,又会怎么办? 2016-02-01<1024伐木累>-小白篇之开发网站,三天!(中篇-2奇怪的IE) # region 总章节11 IE出了问题,来不及找原因,屋内就涌进一堆领导,你一言我一语,围着三人叽叽喳喳说个不停. 此时的耗仔头都大了,这到底是要干啥,刚开始没几个小时,再这么折腾下去,还怎么工作

SEO基础问题:1. 关于网站的三要素你知道多少?

800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priori

《1024伐木累》-小白篇之开发网站,三天!(结束篇)-总章节十三

往期回顾:  忙到深夜,终于可以休息,三人打闹了一会,就各自去洗漱.刚洗完澡心情有些压抑的耗仔开始向光大人请教研发人员的“升级”之路,光大人耐心给耗仔上了一课.睡眼朦胧中吴博士来敲门,新的一天又要开始了., 2016-02-22<1024伐木累>-小白篇之开发网站,三天!(结束篇) # region 总章节13 吴博士带的早餐太丰富了,耗仔吃的有点多,一路打着饱嗝就到了航空部.大门口,闫参谋来回踱着方步,焦急的等待着.一看到几人,赶忙迎了上去,“你们终于来了,快上去吧!” 没有寒暄,一行人直奔

《1024伐木累》-小白篇之开发网站,三天!(前篇)-总章节八

往期回顾: 空军k所,老王留下迷惘的耗仔独自与吴博士沟通需求,回到公司,老王又指定耗仔为新项目负责人,在退居"二线"月侠的热心帮助下,耗仔重新调整工作计划,新来的明儿也即将加入,一切似乎都在顺风顺水的发展着,下班时,一通电话打破了平静局面,光大人,月侠,耗仔要火速赶往空军某部,三天时间开发航空某部网站.   小序 人生! 若白驹过隙,匆匆而已, 光阴似锦,无法倒流, 青春宝贵,奋斗无休, 北漂! 有激情,有迷茫,有机遇,有挑战, 不拼搏又何必留恋? 年轻,真好! 引子 “走,走,快!吴

学习MVC之租房网站(三)-编写实体类并创建数据库

在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式创建数据库. 一.数据库表结构举例 1. 在按照CodeFirst方式编写Entity类之前,仍然是需要先搞清楚数据库的表结构.首先肯定会有用户.管理员.角色.权限等相关的表,然后针对租房的特殊场景,还有房屋.房屋家电配置.房子所在的地址包括城市和区域等. 2. 这里面有两张表比较特殊,T_Settings和

一个没水平的钓鱼网站黑三个人:人们的安全意识和安全知识的缺失

今天,在我的qq好友里面发生这这么一件事情.我的表妹qq被盗,在空间里发了一个钓鱼网站的动态.不久我表妹的表哥的qq空间也发出了同样的动态.过了四五个小时吧,我表弟的空间里也冒出了一样的钓鱼网站动态.最后,还是我去跟他们说清楚情况,让他们通知好友更改密码才结束了这场令人哑然的连环钓鱼攻击. 下面就是动态的内容.大家可以看一下,这段文字稀松平常,说不上多么的高明,只是用上了一点点不成熟的社会工程学罢了.而且这个域名很怪,很容易让人警觉.如果攻击者高明一点,拿到登录权限后,先看一下他qq里的朋友圈,

自定义View之大风车系列demo(三)

大风车系列版本1.0到版本3.0的体验有很大的不足:风车旋转的弧度都是手动写死的,不会根据手指移动的快慢而快慢.版本4.0将解决这个问题,思路如下: 1)以风车图片的中心为坐标原点简历一个直角坐标系,捕获手指按下事件也即是MotionEvent.ACTION_DOWN事件,记录此时手指的坐标点与直角坐标系x正坐标轴的夹角 2)获取手指移动的时候当前手指坐标点与直角坐标系x正轴的夹角. 3)计算步骤1和步骤2的两个夹角的差,就是手指此时移动的弧度.而不像版本3.0之前的那样写死了 具体代码设计如下