BBS论坛(十一)
11.1.前台用户模型创建
(1)apps/front/models.py
首先安装:pip install shortuuid
class FrontUser(db.Model):
__tablename__ = "front_user"
id = db.Column(db.String(100),primary_key=True,default=shortuuid.uuid)
telephone = db.Column(db.String(11),nullable=False,unique=True)
username = db.Column(db.String(50),nullable=False)
_password = db.Column(db.String(100),nullable=False)
email = db.Column(db.String(50),unique=True)
realname = db.Column(db.String(50))
avatar = db.Column(db.String(100))
signature = db.Column(db.String(100))
gender = db.Column(db.Enum(GenderEnum),default=GenderEnum.UNKNOW)
join_time = db.Column(db.DateTime,default=datetime.now) def __init__(self,*args,**kwargs):
#如果传入的参数里面有‘password’,就单独处理
if "password" in kwargs:
self.password = kwargs.get("password")
#处理完后把password pop出去
kwargs.pop("password")
#剩下的参数交给父类去处理
super(FrontUser, self).__init__(*args,**kwargs) @property
def password(self):
return self._password #保存密码的时候加密
@password.setter
def password(self, raw_password):
self._password = generate_password_hash(raw_password) def check_password(self, raw_password):
result = check_password_hash(self.password, raw_password)
return result
(2)manage.py
@manager.option('-t','--telephone',dest='telephone')
@manager.option('-u','--username',dest='username')
@manager.option('-p','--password',dest='password')
def create_front_user(telephone,username,password):
user = FrontUser(telephone=telephone,username=username,password=password)
db.session.add(user)
db.session.commit()
(3)生成表和添加前台用户
python manage.py db migrate python manage.py db upgrade
添加用户
python manage.py create_front_user -t 18888888888 -u huge -p 111111
11.2.注册界面完成
(1)front/views.py
class SignupView(views.MethodView):
def get(self):
return render_template('front/signup.html') bp.add_url_rule('/signup/',view_func=SignupView.as_view('signup'))
(2)common/images/logo.jpg
放一张logo图片
(3)front/front_signup.html
{% from 'common/_macros.html' import static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>仙剑账号注册</title>
<script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="http://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>
body{
background:#f3f3f3;
}
.outer-box{
width: 854px;
background: #fff;
margin: 0 auto;
overflow: hidden;
}
.logo-box{
text-align: center;
padding-top: 40px;
}
.logo-box img{
width: 60px;
height: 60px;
}
.page-title{
text-align: center;
}
.sign-box{
width: 300px;
margin: 0 auto;
padding-top: 50px;
}
</style> </head>
<body> <div class="outer-box">
<div class="logo-box">
<a href="/">
<img src="{{ static('common/images/logo.jpg') }}" alt="">
</a>
</div> <h2 class="page-title">仙剑账号注册</h2> <div class="sign-box"> <div class="form-group">
<div class="input-group">
<input type="text" class="form-control" name="telephone" placeholder="手机号码">
<span class="input-group-btn">
<button class="btn btn-default">发送验证码</button>
</span>
</div>
</div> <div class="form-group">
<input type="text" class="form-control" name="sms_captcha" placeholder="短信验证码">
</div> <div class="form-group">
<input type="text" class="form-control" name="username" placeholder="用户名">
</div> <div class="form-group">
<input type="password" class="form-control" name="password1" placeholder="密码">
</div> <div class="form-group">
<input type="password" class="form-control" name="password2" placeholder="确认密码">
</div> <div class="form-group">
<div class="input-group">
<input type="text" class="form-control" name="graph_captcha" placeholder="图形验证码">
<span class="input-group-addon">
验证码
</span>
</div>
</div> <div class="form-group">
<button class="btn btn-warning btn-block">立即注册</button>
</div> </div>
</div> </body>
</html>
效果:
BBS论坛(十一)的更多相关文章
- Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点
开发一个简单的BBS论坛 项目需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被 ...
- python 学习笔记二十 django项目bbs论坛
项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...
- Python之路,Day17 - 分分钟做个BBS论坛
Python之路,Day17 - 分分钟做个BBS论坛 本节内容: 项目:开发一个简单的BBS论坛 需求: 整体参考"抽屉新热榜" + "虎嗅网" 实现不同 ...
- python第一百三十天 ---简单的BBS论坛
简单的BBS论坛 实现功能 git仓库地址:https://github.com/uge3/BBS 1.整体参考“抽屉新热榜” + “博客园” 2.实现不同论坛版块 3.帖子列表展示 4.个人博客主页 ...
- Django小项目简单BBS论坛
开发一个简单的BBS论坛 项目需求: 1 整体参考"抽屉新热榜" + "虎嗅网" 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用 ...
- Python开发一个简单的BBS论坛
项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...
- bbs论坛浏览器兼容性问题
一直都是在chrome上进行调试,今天终于把bbs论坛这个项目搭建完了,进入IE.Firefox看了看 吓哭了!!! 火狐 Edge chrome 特别是加了<!DOCTYPE html> ...
- 开源BBS论坛软件推荐
七款开源BBS论坛软件推荐(1) 本文介绍了七个开源的BBS论坛软件(在英文界一般叫做Forum).可能国内的朋友们比较熟悉Discuz!和PHPwind,但其实我们的选择还是很多的,而且下面介绍的这 ...
- LNMP环境搭建BBS论坛及伪静态
我们在mysql备份 LNMP环境中的数据库迁移为独立的服务器的基础上搭建BBS论坛: [root@bqh-117 ~]# mysql -uroot -p123456 Welcome to the ...
- Django项目 BBS论坛
BBS论坛 一.项目表分析 二.自定义form组件 三.注册功能 四.BBS论坛 登录功能
随机推荐
- 抓取某东的TT购买记录分析TT购买趋势
最近学习了一些爬虫技术,想做个小项目检验下自己的学习成果,在逛某东的时候,突然给我推荐一个TT的产品,点击进去浏览一番之后就产生了抓取TT产品,然后进行数据分析,看下那个品牌的TT卖得最好. 本文通过 ...
- IIS+Tomcat功能iis端口2
之前写过IIS桥接Tomcat是通过isapi_redirect.dll,组件方式实现共用端口的,但是在Windows2012服务器 iis8.0版本中,配置完成后没有效果,比较抓狂,分析发现如下信息 ...
- unity skybox天空盒分享无需下载
大概有几十种还是100种,具体忘了 反正很多就是了(哈哈哈哈哈!!!!!!!!!!!!) 老铁们, 多谢支持,谢谢大家. 根据需要使用,下面会分享出下载链接: 链接:https://pan.baidu ...
- 执行Hive出现Error running child : java.lang.OutOfMemoryError: Java heap space错误
具体错误日志如下: 2018-05-11 15:16:49,429 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running chi ...
- Linux-day1-上课笔记
命令的组成 命令关键字 [选项] [参数] 注意: 1. 通常情况下 选项- --连接 ls -l /etc 2. - 选项和选项之间是可以合并的 ls -ld /etc ls 罗列文件 常见的选 ...
- BigDecimal.valueOf
Those are two separate questions: "What should I use for BigDecimal?" and "What do I ...
- Linux top命令的用法详细详解
首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内存,但实际只使用 ...
- 为什么在Python里推荐使用多进程而不是多线程?
最近在看Python的多线程,经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢? 要知其然,更要知其所以然.所以有了下面的深入研究: 首先强调背景: 1. ...
- Python(day1)
一.Python的属于解释型语言. 编译型:一次性,将全部的程序编译成二进制文件,然后再运行. 优点:运行速度快. 缺点:开发效率低,不能跨平台. 解释型:当你的程序运行时,一行一行的解释,并运行. ...
- react.JS基础
1.ReactDOM.render() React.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点. <!DOCTYPE html> ...