[步骤] Django 注册功能的实现(SQLite 版)

注意:文中的 mysite 项目和 users 应用,只是站主在本次操作中随意取的名称,读者可以根据自己的喜好换成任意别的名称

步骤目录:
步骤一:系统环境要求
步骤二:安装 Django
2.1 安装 Python3
2.2 创建并进入 Django 项目的目录
2.3 将 Django 项目的目录指定为 Django 环境
2.4 进入 Django 环境

步骤三:创建 mysite 项目
3.1 创建 mysite 项目
3.2 mysite 项目的目录
3.2.1 安装 tree 目录查看软件
3.2.2 查看 mysite 项目的目录
3.3.3 Django 项目目录介绍

步骤四:创建 users 应用
4.1 创建 users 应用
4.2 users 应用的目录
4.2.1 查看 users 应用的目录
4.2.2 Django 应用目录介绍

步骤五:配置 mysite 应用和 users 应用
5.1 在 users 应用数据库模板中添加 users 类
5.2 在 users 应用中添加一个 html 模板
5.3 在 users 应用中添加一个网页返回值的模块并将符合的数值插入数据库
5.4 在 users 应用中添加一个链接并设置对应的模块

5.5 在 mysite 应用中添加一个链接并链接 users 的链接
5.6 在 mysite 应用中导入 users 应用

步骤六:将 Django 的模板导入 SQLite 数据库
6.1 生成牵引文件
6.2 将牵引文件导入 SQLite 数据库

步骤七:测试 Django 注册网页

步骤八:查看 SQLite 数据库里的数据

具体的操作步骤:
步骤一:系统环境要求
(1)服务器的系统需要是 openSUSE 15.2 版本
(2)服务器要关闭防火墙
(3)服务器系统要配置好可用的软件源(最好是软件数量最多的官方版本)
(4)服务器要能够连接外网

步骤二:安装 Django
2.1 安装 Python3
[root@python ~]# zypper -n install python3

(补充:在此次操作发生时,最新的 python 版本是 3.6.12)

2.2 创建并进入 Django 项目的目录
[root@python ~]# mkdir project
[root@python ~]# cd project

2.3 将 Django 项目的目录指定为 Django 环境
[root@python project]# python3 -m venv django_env

2.4 进入 Django 环境
[root@python project]# source django_env/bin/activate
(django_env) [root@python project]# pip install django

(补充:在此次操作发生时,最新的 Django 版本是 3.2)

步骤三:创建 mysite 项目
3.1 创建 mysite 项目
(django_env) [root@python project]# django-admin startproject mysite

3.2 mysite 项目的目录
3.2.1 安装 tree 目录查看软件
(django_env) [root@python project]# zypper -n install tree

3.2.2 查看 mysite 项目的目录
(django_env) [root@python project]# cd mysite
(django_env) [root@python mysite]# tree
.
├── manage.py
└── mysite
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

1 directory, 5 files

3.3.3 Django 项目目录介绍
(1)mysite 此 Django 项目的容器
(2)manage.py 命令行工具,与 Django 项目进行交互
(3)mysite/__init__.py 空文件,通知 Python 此项目是一个 Python 包
(4)mysite/settings.py 此 Django 项目的配置文件
(5)mysite/urls.py 此 Django 项目的 URL 声明和 Django 的网站“目录”
(6)mysite/wsgi.py WSGI 兼容 Web 服务器的入口

步骤四:创建 users 应用
4.1 创建 users 应用
(django_env) [root@python mysite]# django-admin startapp users

4.2 users 应用的目录
4.2.1 查看 users 应用的目录
(django_env) [root@python mysite]# tree
.
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── users
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

3 directories, 13 files

4.2.2 Django 应用目录介绍
(1)app 此 Django 应用的容器
(2)users/__init__.py 空文件,通知 python 此项目是一个 python 包
(3)users/admin.py 此 Django 应用自带的后台管理相关的类
(4)users/app.py 此 Django 应用指定应用名的文件
(5)users/migrations.py 此 Django 应用通过 python 代码生成数据库表时里面会产生一些迁移文件
(6)users/models.py 可以在里面创建一些 Python 对象并通过这些对象在数据库里创建对应的表
(7)users/test.py 此 Django 应用的测试文档
(8)users/views.py 此 Django 应用的视图

步骤五:配置 mysite 应用和 users 应用
5.1 在 users 应用数据库模板中添加 users 类
在 mysite.users.models.py 中添加以下内容:
......
class user(models.Model):
    tname = models.CharField(max_length=30,unique=True)
    tpassword = models.CharField(max_length=30)

(
补充:
(1)这里以创建 tname 和 tpassword 两个字符,长度为 30 个字节,其中一个为唯一为例
(2)主键可以不用设置,默认会自动生成一个 ID 主键
(3)默认表名会生成 <应用名>_<模型类名>,在这里就是 users_user
(4)指定要生成的表明的设置方法是:
    class Meta:
        db_table = '<表名>'
)

5.2 在 users 应用中添加一个 html 模板
创建 mysite.users.templates.users.register.html 并添加以下内容:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>register</title>
</head>
<body>
    <form action="/users/register/" method="post">
        {% csrf_token %}
        <p>
            <label for="un">用户名: </label><input type="text" name="uname" id="un"/>
        </p>
        <p>
            <label for="up">密码: </label><input type="password" name="upassword" id="up"/>
        </p>
        <input type="submit" value="register"/>
    </form>
</body>
</html>

(
补充:这里以
(1)生成一个用户名输入栏,赋值给 uname
(2)生成一个密码输入栏,赋值给 upassword
(3)生成一个 register 提交按钮
为例
)

5.3 在 users 应用中添加一个网页返回值的模块并将符合的数值插入数据库
将 mysite.users.views.py 里的内容全部修改如下:

from django.shortcuts import render
from django.shortcuts import HttpResponse
from .models import user

# Create your views here.

def register(request):
    if request.method=="GET":
        return render(request,'users/register.html')
    else:
        uname = request.POST.get('uname','')
        upassword = request.POST.get('upassword','')

        if uname.strip()!='' and upassword.strip()!='':
        # 判断 uname 和 upassword 是否为空值
            nuser = user(tname=uname,tpassword=upassword)

            nuser.save()
            return HttpResponse('success!')
        else:
            return HttpResponse('fail')

    return HttpResponse('fail')

(
补充:这里以
(1)设置 register 模块并返回 users/register.html
(2)设置 register 模块当网页返回模式是 POST 且 uname 和 upassword 都为非空时将数据存入数据库
为例
)

5.4 在 users 应用中添加一个链接并设置对应的模块
创建 mysite.users.urls.py 并添加以下内容:
#coding=utf-8
from django.conf.urls import url
from users.views import register

urlpatterns = [
    url(r'^register', register),
]

(补充:这里以设置空链接对应 register 模块为例)

5.5 在 mysite 应用中添加一个链接并链接 users 的链接
创建 mysite.users.urls.py 并添加以下内容:
......
#coding=utf-8
from django.conf.urls import url, include
from users.views import register

urlpatterns = [
......
    url(r'^users/', include('users.urls')),
]

(补充:这里以设置 page 链接对应 users 应用的链接为例)

5.6 在 mysite 应用中导入 users 应用
在 mysite.mysite.settings.py 中添加以下内容:
INSTALLED_APPS = [
......
    'users',
]

(补充:这里以导入 users 应用为例)

步骤六:将 Django 的模板导入 SQLite 数据库
6.1 生成牵引文件
(django_env) [root@python mysite]# python3 manage.py makemigrations
Migrations for 'users':
  users/migrations/0001_initial.py
    - Create model user

(补充:这里以将 users 应用的 model 模块转换成牵引文件为例)

6.2 将牵引文件导入 SQLite 数据库
(django_env) [root@python mysite]# python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, users
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK
  Applying users.0001_initial... OK

步骤七:测试注册功能
(1)打开浏览器输入以下网址:
http://127.0.0.1:8000/users/register/
(2)当用户名输入 eternalcenter,密码输入密码 1 点击 “register” 时,返回 successful

步骤八:查看 SQLite 数据库里的数据
使用 SQLiteman 查看此 SQLite 里的数据可以看到一条 tname 字段是 eternalcenter tpassword 字段是 1 的数据
(步骤略)