zoukankan      html  css  js  c++  java
  • Django


     使用Django工程自动创建的auth_user表来存储用户信息

    在app目录下创建forms.py

    mysite/music/forms.py
    
    
    from django.contrib.auth.models import User
    
    from django import forms
    
    
    class UserForm(forms.ModelForm):
    
        password = forms.CharField(widget=forms.PasswordInput)
    
        class Meta:
            model = User
            fields = ['username', 'email', 'password']
    mystie/muisc/views.py
    
    
    from django.contrib.auth import authenticate, login
    from django.views.generic import View
    from .forms import UserForm
    
    
    class UserFormView(View):
        form_class = UserForm
        template_name = 'music/registration_form.html'
    
        # display blank form
        def get(self, request):
            form = self.form_class(None)
            return render(request, self.template_name, {'form': form})
    
        # process form data
        def post(self, request):
            form = self.form_class(request.POST)
    
            if form.is_valid():
    
                user = form.save(commit=False)              #先不提交
    
                # cleaned (normalized) data
                username = form.cleaned_data['username']    #防止注入
                password = form.cleaned_data['password']
                user.set_password(password)                #加密
                user.save()
    
                # return User objects if credential are correct
                user = authenticate(username=username, password=password) #注册
    
                if user is not None:
    
                    if user.is_active:
                        login(request, user)
                        return redirect('music:index')
    
                return render(request, self.template_name, {'form': form})
    mysite/music/urls.py
    
    ...
    # /muisc/register/
        url(r'^register/$', views.UserFormView.as_view(), name='register'),
    ...
    
    
    music/registration_form.html
    <form action="#" method="post" class="form-horizontal">
      {% csrf_token %}
      {% include 'music/form-template.html' %}
      </form>
    

    
    
    music/form-template.html

    {% for field in form %}
    <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <span class="text-danger small">{{ field.errors }}</span> </div> <label class="label-control col-sm-2">{{ field.label_tag }}</label> <div class="col-sm-10">{{ field }}</div> </div> {% endfor %} <div class="form-group"> <div class="col-sm-offset-2"> <button type="submit" class="btn btn-success">Submit</button> </div> </div>
    KEEP LEARNING!
  • 相关阅读:
    RabbitMQ安装(发生系统错误5。拒绝访问。发生系统错误1067。进程意外终止。)
    SQLServer执行脚本提示“系统找不到指定的文件”或“内存资源不足”
    TypeScript@HelloWorld!
    超详细Node安装教程
    进制转换
    菜鸟成长记
    ASP.NET Core中使用MialKit实现邮件发送
    VS未能正确加载 ”Microsoft.VisualStudio.Editor.Implementation.EditorPackate“包错误解决方法
    C#Winfrom Listview数据导入Excel
    安装研发服务器
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5424448.html
Copyright © 2011-2022 走看看