前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战篇-论坛注册视图

Django实战篇-论坛注册视图

作者头像
小团子
发布2019-07-18 15:38:24
7920
发布2019-07-18 15:38:24
举报
文章被收录于专栏:数据云团数据云团

在前两节中,完成了论坛模型层的创建和表单 forms 的创建。

在模型层中用到的字段类型,有整型,字符串型,时间型还有就是外键关联。

Django基础篇-模型基础

① 在论坛注册中,需要创建注册函数;

Django 自带了登录和注销的视图类。

代码语言:javascript
复制
from django.shortcuts import render
from .forms import SignUpFor

在 signup 函数中,先是判断是 POST 请求还是 GET 请求。因为登录是需要传递数据,所以为 POST 请求,接下来就是实例化注册的验证表单 SignUpForm(),将 request.POST 写入,是为了将前端传来的数据转成 form 表单。

经过 form.is_valid() 的字段验证,完成 form 表单中所填字段是否为注册表单SignUpForm() 对应字段的类型和字段要求。如果验证通过,就会调用 auth_login() 登录,然后再重定向到论坛主页。

代码语言:javascript
复制
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save()
            auth_login(request, user)
            return redirect('users:home')
    else:
        form = SignUpForm()
    return render(request, 'board/accounts/signup.html', {"form": form})

② 注册的表单验证 SignUpForm()

代码语言:javascript
复制
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class SignUpForm(UserCreationForm):
    email = forms.CharField(max_length=254, required=True, widget=forms.EmailInput())
    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

③ 添加注册的路由

可以在项目的主文件目录的 urls.py 文件中,添加注册路由。

需要注意的是 signup 函数的导入文件路径。

代码语言:javascript
复制
from . import views
代码语言:javascript
复制
urlpatterns = [
  path('signup/', views.signup, name="signup"),
]

④ 注册的页面模板

在 signup 函数中,有返回 页面。

代码语言:javascript
复制
return render(request, 'board/accounts/signup.html', {"form": form})

Django基础篇-模板加载静态文件

signup.html

form.html

父模板 base_accounts.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档