Djanaog实现注册

Django实现注册

创建项目与应用

django-admin.py startproject mysite3
python manage.py startapp account
打开mysite3/mysite3/settings.py文件,将应用添加进去:
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'account',
]

设计Model(数据库)

打开打开mysite3/account/models.py文件,添加如下内容:
from django.db import models

# Create your models here.
class User(models.Model):
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=50)
    email = models.EmailField()
生成数据库表
python manage.py makemigrations
python manage.py migrate

创建视图(逻辑层)

打开mysite3/account/views.py 文件:
from django.shortcuts import render,HttpResponse
from account.models import User
from django import forms


#定义表单模型
class UserForm(forms.Form):
    username = forms.CharField(label='用户名:',max_length=100)
    password = forms.CharField(label='密码:',widget=forms.PasswordInput())
    email = forms.EmailField(label='电子邮件:')


def register(request):
    if request.method == 'POST':
        uf = UserForm(request.POST)
        if uf.is_valid():
            #获取表单信息
            username = uf.cleaned_data['username']
            password = uf.cleaned_data['password']
            email = uf.cleaned_data['email']
            #将表单写入数据库
            user = User()
            user.username = username
            user.password = password
            user.email = email
            user.save()
            #返回注册成功页
            return render(request,'success.html',{'uf':uf})
    else:
        uf = UserForm()
    return render(request,'register.html',{'uf':uf})

   在这个逻辑中主要做了几件事,首先提供给用户一个注册页面(register.html),UserForm类定义了表单在注册页面上的显示。接受用户填写的表单信息,然后将表单写入到数据库,最后返回给用户一个注册成功的页面(success.html).

创建模板文件(前端页面)

  在逻辑层提到了两个页面,一个注册页,一个注册成功页面。先在mysite3/account/ 目录下创建telmplates目录,接着在 mysite3/account/templates目录下创建 register.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
</head>
  <style type="text/css">
    body{color:#efd;background:#453;padding:0 5em;margin:0}
    h1{padding:2em 1em;background:#675}
    h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
    p{margin:1em 0}
  </style>
<body>
    <h1>注册页面:</h1>
    <form method = 'post' enctype="multipart/form-data">
        {{uf.as_p}}
    <input type="submit" value = "ok" />
    </form>
</body>
</html>

   mysite3/account/templates 目录下创建success.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册成功</title>
</head>
<body>
    <h1>恭喜 {{ username }},注册成功!</h1>
</body>
</html>

设置URL

打开mysite3/mysite3/urls.py:
from django.conf.urls import url,include
from django.contrib import admin
from account import urls

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^account/',include('account.urls')),
]

   在mysite3/account/目录下创建urls.py文件:

from django.conf.urls import url,include

from . import views
urlpatterns = [
    url(r'^$',views.register,name='register'),
    url(r'^register/$',views.register,name='register'),
]

   这里表示访问: http://127.0.0.1:8000/account和http://127.0.0.1:8000/account/register/都会指向同一个页面。

体验注册

   现在我们一体验一下注册:

   打开打开mysite3/mysite3/settings.py文件,将下面一行代码注释:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
#    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

  现在可以作为一个用户去填写表单了:

查看登录的用户

   你可以直接查询数据库表,也可以使用admin管理

  打开mysite3/account/models.py文件:

from django.db import models

# Create your models here.


class User(models.Model):
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=50)
    email = models.EmailField()

from django.contrib import admin
class UserAdmin(admin.ModelAdmin):
    list_display = ('username','password','email')

admin.site.register(User,UserAdmin)

  重新初始化数据库后,登录admin后台:

原文地址:https://www.cnblogs.com/postgres/p/5922926.html