在使用FLASK時,要從表單即時檢查帳號或EMAIL是否有人已經註冊
這時須利用javascript把變數從資料庫檢查提取是否有人已使用
並用json傳回模板
範例
- $(document).ready(function(){
- $("#username").blur(function(){
- $.get(
- '/chkname',
- { 'username': $(this).val(), 'lv': 2 },
- function(data) {
- document.getElementById("chkname").innerText=data.chkname;
- },
- 'json'
- );
- }).trigger('change');
- });
- $(document).ready(function(){
- $("#email").blur(function(){
- $.get('/chkemail',
- { 'email': $(this).val(), 'elv': 2 },
- function(data) {
- document.getElementById("chkemail").innerText=data.chkemail;
- },
- 'json'
- );
- }).trigger('change');
- });
- </script>
- <div id="content" class="container">
- <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
- <tr><td><h2>會員註冊</h2></td></tr>
- <form name="form1" method="post" action="reg" id="formContact" name="formContact" >
- <tr><td width="45%" align="right">會員帳號:</td>
- <td><input type="text" name="username" id="username" size="25" onBlur="chknc()" required="required">
- <span id="chkname" class="require">必填</span></td></tr>
- <tr><td align="right">註冊密碼:</td>
- <td><input type="password" name="passwd" id="passwd" class="passwd" size="27" required="required"><span class="require">必填</span></td></tr>
- <tr><td align="right">確認密碼:</td>
- <td><input type="password" name="passwd1" id="passwd1" size="27" required="required"><span class="require">必填</span></td></tr>
- <tr><td align="right">E-mail:</td>
- <td><input type="text" name="email" id="email" size="25" required="required">
- <span id="chkemail" class="require">必填</span></td></tr></td></tr>
- <tr><td align="right">Line帳號:</td><td><input type="text" name="line" id="line" size="25"></td></tr>
- <tr><td align="right">聯絡電話:</td>
- <td><input type="text" name="phone" id="phone" size="25">
- </td></tr>
- <tr><td align="right">手機號碼:</td>
- <td><input type="text" name="cell" id="cell" size="25" required="required"> <span class="require">必填</span></td></tr>
- <tr><td align="right">真實姓名:</td>
- <td><input type="text" name="truename" id="truename" size="25" required="required">
- <span class="require">必填</span></td>
- </tr>
- <tr><td align="right">郵遞區號:</td>
- <td><input type="text" name="post" id="post" size="25"></td></tr>
- <tr><td align="right">聯絡地址:</td>
- <td><input type="text" name="address" id="address" size="25"></td></tr>
- <tr><td height="30" colspan="2" align="center"><input class="btn btn-success" type="reset" value="重寫" class="buttoncss"> <input class="btn btn-primary" type="submit" name="send" value="提交" class="buttoncss"></td></tr></form>
- </table>
- </div>
複製代碼
.py檔內
- @app.route("/chkemail", methods=["POST","GET"])
- def chkemail():
- conn = check_db_connection()
- cursor = conn.cursor(dictionary=True)
- email = str(request.args.get('email'))
- elv = str(request.args.get('elv'))
- # print("email:",email ,"elv:",elv)
- # 只有在 parentId 與 levelNum 都存在的情況下,才進行資料庫的搜尋
- if (email != None) and int(elv) != 0:
- sql = "SELECT * FROM net_member WHERE email = '"+email+"'"
- cursor.execute(sql)
- row_count = cursor.rowcount
- # print("row_count:",row_count)
- if row_count > 0 :
- chkemail = '此email帳號不能用'
- else :
- chkemail = "此email帳號可以用"
- return jsonify(chkemail=chkemail)
- @app.route("/chkname", methods=["POST","GET"])
- def chkname():
- conn = check_db_connection()
- cursor = conn.cursor(dictionary=True)
- username = str(request.args.get('username'))
- lv = str(request.args.get('lv'))
- # print("username:", username, "lv:", lv)
- # 只有在 parentId 與 levelNum 都存在的情況下,才進行資料庫的搜尋
- if (username != None) and int(lv) != 0:
- sql = "SELECT * FROM net_member WHERE username = '" + username + "'"
- cursor.execute(sql)
- row_count = cursor.rowcount
- # print("row_count:", row_count)
- if row_count > 0:
- chkname = '此帳號名稱不能用'
- else:
- chkname = "此帳號名稱可以用"
- return jsonify(chkname=chkname)
複製代碼
完成圖
flask render_template javascript json
flask render_template javascript json
文章來源:NetYea 網頁設計
|