博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
潭州课堂25班:Ph201805201 tornado 项目 第五课 增加用户系统-用户中心(课堂笔记)...
阅读量:5227 次
发布时间:2019-06-14

本文共 3774 字,大约阅读时间需要 12 分钟。

 

 

在 users 表中创建记录,做测试

在项目根目录下创建 test.py 

# -*- coding: utf-8 -*-# 斌彬电脑# @Time : 2019/2/27 0027  下午 12:20from models.db import DBSessionfrom models.account import User# 实例工厂类session = DBSession()# 实例数据库的类u = User(name='abc', password='123')# 把数据库的类加到工厂中session.add(u)session.commit()

运行这个文件,就可以在数据库中保存记录

 

 知道怎么向数据库添加数据后,就可以完成用户注册的功能:

在 handlers 的 auth.py 中写个用户注册类,

在 app.py 中设置路由

 

在 templates 模板文件中 添加 register.html 

 

把测试成功的代码添加到 models 的 account.py 文件中

# -*- coding: utf-8 -*- # 斌彬电脑 # @Time : 2019/2/27 0027  上午 4:57 from datetime import datetime from sqlalchemy import (Column,Integer, String, DateTime) from .db import Base,DBSession session = DBSession() class User(Base):     __tablename__ = 'users'     #                       主键,自增长,     id = Column(Integer, primary_key=True, autoincrement=True)     #                       唯一的,不可以为空     name = Column(String(100), unique=True, nullable=False)     # 密码   不是空的     password = Column(String(500), nullable=False)     # 创建时间     creatd = Column(DateTime, default=datetime.now)     def __repr__(self):         return '

  

在 utlis的 auth.py 中引入 models 的 account 

# -*- coding: utf-8 -*-# 斌彬电脑# @Time : 2019/2/26 0026  上午 9:26import hashlib          # 对密码进行 md5 处理from models.account import Userdef hashed(text):    """哈西处理"""    return hashlib.md5(text.encode('utf8')).hexdigest()USER_DATA = {    'username':'abc',    'password':hashed('123')}def authenticate(username, password):    """    校验用户名,密码    :return True or False    """    if username and password:        is_match =  (username==USER_DATA['username'])and (hashed(password)==USER_DATA['password'])        return is_match    else:return Falsedef register(name, password):    """    用户注册,对密码进行哈西处理    :param name:    :param password:    :return:    """    # 把密码哈西后存入数据库    User.add_user(name=name, password=hashed(password))

 在 handlers 的 auth.py 中 调用  register 的方法

# -*- coding: utf-8 -*-# 斌彬电脑# @Time : 2019/2/26 0026  上午 8:28import tornado.webfrom utlis import authfrom .main import AuthBaseHandler# from models.account import Userclass LoginHandler(AuthBaseHandler):    """登录"""    def get(self, *args, **kwargs):        self.render('login.html')    def post(self, *args, **kwargs):        # 从 login.html 的 form 表单中拿到用户名,密码, None 为异常处理,(如果拿不到,传蛇夫座值)        name = self.get_argument('username', None)        password = self.get_argument('password', None)        next = self.get_argument('next', '/')                   # 返回原始页面        if auth.authenticate(name, password):            self.session.set('login_user', name)            # 重定向到首页            self.redirect(next)        else: self.write('用户名或密码不正确')class LogoutHandler(AuthBaseHandler):    """用户退出登录"""    def get(self, *args, **kwargs):        self.session.set('login_user','')        self.write('您已成功退出登录')class RegisterHandler(AuthBaseHandler):    """用户注册,信息写入数据库"""    def get(self, *args, **kwargs):        self.render('register.html')    def post(self, *args, **kwargs):        name = self.get_argument('name', '')        password_1 = self.get_argument('password1', '')        password_2 = self.get_argument('password2', '')        if password_1 == password_2:            # 所信息添加到数据库中            auth.register(name,password_1)            # 注册成功后跳转到首页面            self.redirect('/')        else:            self.write('两次输入的密码不一致')

  

 

如果这些可以跑通,就可以把 utlis 下 auth.py 中的USER_DATA删除,调用数据库的信息,

 

因为数据库中的 name 是唯一的,如果有同名的用户名进行注册,传到数据库中,就会报错,

所以,在注册是,把 name 值先在数据库中查询,看看是否存在,

 

 

 

 

 

 

创建图片信息数据库的表,

在 models 的 account.py 中写个创建图片信息存放的表

执行更新数据库的操作

alembic revision --autogenerate -m "create img_post table"

alembic upgrade head

 

 

 

在 utlis 中的 photo.py 中写个保存用户上传图片的信息,

 

 在 main.py 处理图片上传中将图片信息存到数据库

 

 

把三个基本页面改成从数据库中获取数据,之后渲染

查询图片信息

把这个方法引入到 man.py 在  PostHandler 中调用

在 html 文件中渲染

 

 index页面

 

 

 

转载于:https://www.cnblogs.com/gdwz922/p/10448725.html

你可能感兴趣的文章
this 指向
查看>>
Kruskal基础最小生成树
查看>>
【RabbitMQ】 Java简单的实现RabbitMQ
查看>>
BZOJ.4819.[SDOI2017]新生舞会(01分数规划 费用流SPFA)
查看>>
ubuntu 14.04 安装搜狗拼音输入法
查看>>
c#中 uint--byte[]--char[]--string相互转换汇总
查看>>
- C#编程大幅提高OUTLOOK的邮件搜索能力!
查看>>
InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)
查看>>
Windows 8.1 应用再出发 - 几种布局控件
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>
[WebMatrix] 如何将SQL Compact 4.0 移转至SQL Server 2008 Express
查看>>
Java内部类详解
查看>>
验证码类[置顶] SSO单点登录系列5:cas单点登录增加验证码功能完整步骤
查看>>
冒泡排序
查看>>
python-基础
查看>>
《SQL Server 监控和诊断》
查看>>
17 案例
查看>>
【BZOJ 1221】 [HNOI2001] 软件开发
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
SQL字符型转日期型
查看>>