大家好,我是長風青雲。
今天是鐵人賽的第二十一天,我們今天來做註冊的部分吧~
這次抽籤抽到藍色~
這部分以前都說過了,我們來快進~
寫好首頁、登入、註冊頁面後就跳入後端~
首頁跟之前差不多我就不多做贅述,我們先來處理register部分。
我說過,我們註冊的時候要做信箱的驗證,所以我們會使用到flask-mail
。
但與此同時我們也必須將我們使用者的名稱放入資料庫中,那就先讓我們來說MySQL部分吧。
我想了很久,將我們的資料表建置成這樣,雖然其實他完全可以大家在同一個資料表裡哈哈哈。
首先我會將資料全部放在unconfirm資料表中,其中register
就是我們驗證的時間,如果我們未在應驗證的時間內驗證,他將會把你的資料從unconfirm中刪除。
但這些我們先不說,還是先將我們輸入資料庫的部分寫好來吧~
@app.route('/register/',methods=['GET','POST'])
def register():
if request.method=='POST':
command="SELECT * FROM information where account='%s'" % request.form['userid']
cursor.execute(command)
result = cursor.fetchone()
if result==None:
command="SELECT * FROM unconfirm WHERE ACCOUNT='%s'" % request.form['userid']
cursor.execute(command)
result = cursor.fetchone()
if result != None:
return render_template('register.html',alert='此帳號已有人註冊',nick=request.form['username'])
elif request.form['userpw']!=request.form['conf_pw']:
return render_template('register.html',alert='密碼與確認密碼不同',id=request.form['userid'],nick=request.form['username'])
else:
command = "INSERT INTO unconfirm VALUES (%s,%s,%s,%s,%s,%s)"
val=(request.form['userid'],request.form['userpw'],request.form['username'],request.form['email'],request.form['public_key'],time.time())
cursor.execute(command, val)
db.commit()
return redirect(url_for('index'))
return render_template('register.html')
第一個command是確認是否有此帳戶,若無則result會回傳None。
第二個command是確認此帳戶是否在unconfirm中。
第三個command是已經要新增用戶了,我們會先將用戶加在unconfirm中,等帳戶驗證後再做移轉的動作(這部分還沒寫)。
我們先來看看操作資料庫的實際影片。
接著我們要使用系統發送驗證信,就需要使用這個了~
我想了想,請大家看這個網站他說得非常詳細,所以這部分我便不多作著墨。我使用的是hotmail,因為可以直接使用,不需要向gmail一樣需要申請第二個密碼。