django框架中表單資料向後臺提交
阿新 • • 發佈:2018-12-19
一、前端構建表單,為每個input標籤新增name 屬性,設定method,action(前端程式碼使用的是bootstrap框架)
<form id="register" action="/memsave/" method="post" style="display: none"> <div class="form-group"> <table class="table"> <tbody> <tbody> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">真實姓名</td><td colspan="2"><input name="register_name" type="text" style="line-height: 25px;border: none;outline:none" placeholder="請輸入您的名字" required></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">聯絡方式</td><td ><input name="register_tel" style="line-height: 25px;border: none;outline:none" type="tel" minlength="11" maxlength="11" placeholder="請輸入手機" required></td><td><a style="margin-left: -15px;line-height: 25px;font-size:0.7em;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">獲取驗證碼</a></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">現在住址</td><td colspan="2"><input name="register_address" type="text" style="line-height: 25px;border: none;outline:none" placeholder="請輸入住址" required></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">所屬單位</td><td colspan="2"><input name="register_company" type="text" style="line-height: 25px;border: none;outline:none" placeholder="請輸入公司/學校/企業/機構" required></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">密碼設定</td><td colspan="2"><input name="register_pswd" type="password" style="line-height: 25px;border: none;outline:none" placeholder="請輸入密碼" required></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">確認密碼</td><td colspan="2"><input name="register_pswd1" type="password" style="line-height: 25px;border: none;outline:none" placeholder="請再一次輸入密碼" required></td></tr> <tr><td style="line-height: 25px;word-break: keep-all;white-space: nowrap;text-overflow: ellipsis;">常用郵箱</td><td colspan="2"><input name="register_email" type="email" style="line-height: 25px;border: none;outline:none" placeholder="請輸入郵箱" required></td></tr> <tr><td colspan="3"><input style="border: none" type="radio" name="read" required>已閱讀平臺註冊協議並同意註冊 </td></tr> </tbody> </table> <button class="btn btn-success" type="submit" style="margin: 0 20% 0 20%;width: 60%" onclick="registerid_submit()">註冊</button> </div> <!--<div class="row" style="text-align: center"><span id="regresponse"></span> <a id="regresponse1" style="margin-top:15px" onclick="login()">返回登入介面</a></div>--> </form>
二、後臺處理資料並存入資料庫當中,儲存成功後return Httprespnse(如有疑問,請前往瞭解django的通訊機制)
#註冊資訊提交,如果成功返回sucess 如果失敗返回fial def mem_save(request): try: if request.method=="POST": user_name = request.POST.get("register_name", None) telephone = request.POST.get("register_tel",None) address = request.POST.get("register_address",None) company = request.POST.get("register_company",None) pswd = request.POST.get("register_pswd",None) email = request.POST.get("register_email",None) database.memRigister(user_name,telephone,address,company,pswd,email) return render(request, "YRSWKJ2.0/memcontroller.html", {'answer': 'no', "msg": "註冊成功,請點選登入"}) except: return render(request, "YRSWKJ2.0/memcontroller.html", {'answer': 'no', "msg": "註冊失敗,點選重新註冊"})
提交的資料包含在request請求中,後臺獲取資料,呼叫database.py 儲存資料的函式進行資料儲存