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!
  • 相关阅读:
    CSS命名规范
    dev 从表处理
    core直接获取报异常数据
    SQL根据指定节点ID获取所有父级节点和子级节点(转载)
    bootstrap的tree使用
    ef报错(因为相同类型的其他实体已具有相同的主键值)
    yii初体验(2)创建方法
    yii初体验(1)composer安装+环境检测
    layui数据表格中图片无法自适应问题
    tp5查询数据库排除某字段
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5424448.html
Copyright © 2011-2022 走看看