下面把角色分為兩種,普通用戶和管理員用戶,至少對于普通用戶來說,直接修改DB是不可取的,要有用戶注冊的功能,下面就開始進行用戶注冊的開發。
用戶表
首先要想好用戶注冊的時候需要提供什么信息:用戶名、密碼、昵稱、郵箱、生日、性別、自我介紹,下面就按照這些信息修改用戶模型:
class User(db.Model): __tablename__="users" id=db.Column(db.Integer,primary_key=True) username=db.Column(db.String(50),unique=True,index=True) password=db.Column(db.String(50)) nickname=db.Column(db.String(50)) email=db.Column(db.String(100)) birthday=db.Column(db.DateTime) gender=db.Column(db.Integer) remark=db.Column(db.String(200)) role_id=db.Column(db.Integer,db.ForeignKey("roles.id"))
然后使用腳本修改db
python default.py db migrate -m "修改用戶表"
回車后界面顯示內容為:
然后進行db差異的改動
python default.py db upgrade
這時看db中的表結構:
已經修改成功
注冊界面
然后新建register.html模板,設置登錄表單:
{% extends "base.html"%}{% block content %} <!--具體內容--><div class="container"> <div class="row"></div> <div class="row"> <div> <div class="page-header"> <h1>歡迎您注冊</h1> </div> {% for message in get_flashed_messages() %} <div class="alert alert-warning"> <button type="button" class="close" data-dismiss="alter">×</button> {{message}} </div> {% endfor %} <form method="post"> <div class="form-group"> <label for="username">用戶名</label> <input type="text" class="form-control" name="username" id="username" placeholder="請輸入用戶名"> </div> <div class="form-group"> <label for="passworld">密碼</label> <input type="password" class="form-control" name="password" id="passworld" placeholder="請輸入密碼"> </div> <div class="form-group"> <label for="email">昵稱</label> <input type="email" class="form-control" name="nickname" id="nickname" placeholder="請輸入昵稱"> </div> <div class="form-group"> <label for="birthday">生日</label> <input type="date" class="form-control" name="birthday" id="birthday" placeholder="請輸入生日"> </div> <div class="form-group"> <label >性別</label> <label class="form-control"> <input type="radio" name="gender" value="0" id="gender0"><label for="gender0">男</label> <input type="radio" name="gender" value="1" id="gender1"><label for="gender1">女</label> </label> </div> <div class="form-group"> <label for="email">電子郵箱</label> <input type="email" class="form-control" name="email" id="email" placeholder="請輸入電子郵箱"> </div> <button type="submit" class="btn btn-default">登錄</button> </form> </div> </div></div>{% endblock %}
新聞熱點
疑難解答