第二天:登录验证

经过这么久的无知【其实无知好久了】,感觉应该看下python的基础知识了,已经积累了很多疑问了。于是早上看了下正在编写中的大蟒本色。。因为内容不多,所以一会儿就看完了。。。

想来想去,还是直接学框架吧。偏底层的东西,在平时再慢慢接触吧。关键是没什么时间来好好学啊啊啊。

说到框架,python的框架实在是太多了。各有个的优势,所以,都学吧!->_->

入门的话,打算选web.py来学。因为听说很简单。

对了,如果是完全新手,又想学web.py的话,建议一开始不要去搞服务器配置什么的。直接用web.py的内置服务器就好。

web.py的安装请参考:http://webpy.org/install.zh-cn

然后可以用这个稍微练习下:http://webpy.org/docs/0.3/tutorial

然后最关键的东西当然是:http://webpy.org/cookbook/

code.py的代码:

#!usr/bin/env python
# coding: utf-8
import web

urls = (
    "/", "hello",
    "/login_check", "login_check.Check"
)
app = web.application(urls, globals())

class hello:
    def GET(self):
        return "Hello, world!"

if __name__ == "__main__":
    app.run()

code.py的代码应该没什么好讲的,主要是参考文档中的Hello World!

login_check.py的代码:

#!usr/bin/env python

import web
from userdo import UserDo

class Check:
    def POST(self):
        name, pwd = web.input().name, web.input().pwd
        render = web.template.render('templetor')

        userDo = UserDo()
        if(name != None and pwd != None and userDo.login_check(name, pwd) == 1):
            return render.success()

从web.py的Cookbook找到web.input()可以获取网页过来的数据,然后就是模板。。用法参考cookbook,好像有问题,原因还没找~~。

登录页面代码:

<form id="f_login" name="f_login" method="post" action="/login_check">
    <table width="100%" border="0">
      <tr>
        <td>用户名</td>
        <td><label>
          <input type="text" name="name" id="name" />
        </label></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><label>
          <input type="password" name="pwd" id="pwd" />
        </label></td>
      </tr>
      <tr>
        <td><label>
          <input type="submit" name="button" id="button" value="提交" />
        </label></td>
        <td> </td>
      </tr>
    </table>
  </form>

userDo.py的代码:

#!/usr/bin/env python
#coding: utf-8

import _mysql

class UserDo:
    def __init__(self):
        self.db = _mysql.connect('localhost', 'root', 'password', 'py')
    def login_check(self, name, pwd):
        self.db.query("""SELECT pwd FROM tuser WHERE name='%s'"""%name)
        r = self.db.store_result()
        msg = r.fetch_row()
        if msg != None and msg[0][0] == pwd:
            return 1
        return 0

数据库操作参考:http://mysql-python.sourceforge.net/MySQLdb.html

数据库建表语句:

create table tuser(name varchar(10), pwd varchar(10));

参考资源:

web.py官网:http://webpy.org/

大蟒本色: http://code.google.com/p/openbookproject/wiki/RealWorldPyLivin 
 
 
 
 

转载请注明: 转载自http://jyd.me/

本文链接地址: 第二天:登录验证

Tagged on: , ,

2 thoughts on “第二天:登录验证

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据