• 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!
  • 相关阅读:
    咖啡生活-享受慵懒的午后时光
    窗体皮肤实现
    编译树莓派2代B型OpenWrt固件实现无线路由器及nodogsplash认证功能
    通过hook实现禁止shift+delete快捷键
    c++ Qt向PHP接口POST文件流
    Qt for Android开发总结
    A previous installation of Qt5 Visual Studio Add-in was detected. Please uninstall it before running this installer解决办法
    windows下Qt5.1 for android开发环境配置
    Qt+mpg123+openal播放MP3流
    RTC搭建android下三层应用程序访问服务器MsSql-客户端
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5424448.html
Copyright © 2020-2023  润新知