zoukankan      html  css  js  c++  java
  • 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后台:

  • 相关阅读:
    Yii Framework 开发教程: 总结
    code first 如何创建索引字段
    Entity Framework 使用 Left Join
    如何查看IIS并发连接数
    c# List<int> 转 string 以及 string [] 转 List<int>
    linq中如何在join中指定多个条件
    关于学习的感悟
    c# 的访问修饰符是private 还是 internal?
    C# 与 .Net 3.5 高级程序设计(第四版) 读书笔记(一)
    解决Excel 提示向程序发送命令时出现错误
  • 原文地址:https://www.cnblogs.com/postgres/p/5922926.html
Copyright © 2011-2022 走看看