1. 程式人生 > >django的表單系統

django的表單系統

mes 都是 value sub val 實例 userinfo 需要 展示

1、概述:

django表單系統中,自定義表單類都是以django.forms.Form為父類進行創建;

django中的Form一般有兩種功能:

  • 生成特定的HTML標簽
  • 後臺驗證用戶提交的數據

2、在views文件中自定義form表單類:

# 自定義form表單類
class Userinfo(forms.Form):
    name = forms.CharField()
    password = forms.CharField()
    email = forms.EmailField()
    message = forms.CharField()

3、views中的方法:

def login(request):
    # 創建自定義表單的實例
    form_obj = Userinfo()
    # 將前端表單post的數據,封裝到自定義表單類中
    user_info = Userinfo(request.POST)
    # 驗證前端數據是否合法
    if user_info.is_valid():
        print True
    else:
        print False
    # 將自定義表單的實例傳到html文件中
    return render(request, login.html, {form_obj
: form_obj})

4、前端代碼:

<form method="post" action="{% url ‘login‘ %}">
    <p>用戶名:{{ form_obj.name }}</p>
    <p>密碼:{{ form_obj.password }}</p>
    <p>郵箱:{{ form_obj.email }}</p>
    <p>備註:{{ form_obj.message }}</p>
    <input type="submit" value="
提交" name="submit"> </form>

5、提取前端提交的數據和捕獲錯誤信息:

def login(request):
    # 創建自定義表單的實例
    form_obj = Userinfo()
    # 將前端表單post的數據,封裝到自定義表單類中
    user_info = Userinfo(request.POST)
    # 驗證前端數據是否合法
    if user_info.is_valid():
        # 驗證通過,提取用戶提交的數據
        print user_info.clean()
    else:
        # 驗證未通過捕獲錯誤提示
        print user_info.errors
    # 將自定義表單的實例傳到html文件中
    return render(request, login.html, {form_obj: form_obj})

6、將錯誤提示返回到前端展示:

def login(request):
    # 創建自定義表單的實例
    form_obj = Userinfo()
    # 將前端表單post的數據,封裝到自定義表單類中
    user_info = Userinfo(request.POST)
    # 驗證前端數據是否合法
    if user_info.is_valid():
        # 驗證通過,提取用戶提交的數據
        print user_info.clean()
    else:
        # 驗證未通過捕獲錯誤提示
        erro_info = user_info.errors
        # 用戶提交了數據,返回錯誤信息的同時,也需要把用戶填寫的數據一起返回
        return render(request, login.html, {form_obj: user_info, erro_info: erro_info})
    # 將自定義表單的實例傳到html文件中
    return render(request, login.html, {form_obj: form_obj})

django的表單系統