表單提交可能會報錯,注意一行代碼就可以解決:
簡單配置路由:
簡單表單提交:
<form action="/index/" method="post"> <p><input type="text" name="username" placeholder="請輸入用戶名"></p> <p><input type="text" name="password" placeholder="請輸入密碼"></p> <p><input type="submit" value="提交"></p> </form>
可見上面的提交還是提交到當前方法:可以通過判斷提交方式來判斷是提交表單還是請求頁面:
def index(request): #return HttpResponse("hello word") if request.method == 'POST': u = request.POST['username'] p = request.POST['password'] print(u,p) return render(request,'index.html')
這種接受如果,接受不到就會報錯,所以都是這樣接受的:
def index(request): #return HttpResponse("hello word") if request.method == 'POST': u = request.POST.get('username',None) p = request.POST.get('password',None) print(u,p) if u =='123' and p == '456': from django.shortcuts import redirect return redirect("http://www.baidu.com") return render(request,'index.html')
示例demo:
from django.shortcuts import render from django.shortcuts import HttpResponse #coding=utf-8 def index(request): #return HttpResponse("hello word") error_msg = '' if request.method == 'POST': u = request.POST.get('username',None) p = request.POST.get('password',None) print(u,p) if u =='123' and p == '456': from django.shortcuts import redirect return redirect("/index/") else: error_msg = "failse to login" return render(request,'index.html',{'error_msg':error_msg})
模板:
<form action="/index/" method="post"> <p><input type="text" name="username" placeholder="請輸入用戶名"></p> <p><input type="text" name="password" placeholder="請輸入密碼"></p> <p><input type="submit" value="提交">{{ error_msg }}</p> </form>