Django项目学习3--项目模板抽取(流水账)

首先,老师给了一些静态文件,我们可以在pycharm里直接复制进项目根目录下。此时如果js文件报错的话,可以进入设置-语言&框架-Javascript里面修改。在这里插入图片描述

把静态文件放入到静态文件夹里。
在这里插入图片描述
然后就可以把原来问文件夹给删掉了。
按着顺序拉取静态文件,就会自动补全路径。
然后再写视图函数,配置路由,就可以看到这些文件了

随后在templates下创建base文件夹,把主页面复制进作为其他网页继承的主模板
在这里插入图片描述
随后再挖好坑
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主体里面分为其他部分,也可以挖坑,坑里面可以有内容


首先开始写注册功能

在主页面中,点击注册,并不能实现跳转,先写跳转注册页面。

原本的注册选项a标签是这样的
在这里插入图片描述
在django里面这样写并不能实现跳转,需要这样改

在这里插入图片描述

因为href是直接把url拼接的,而所写的url里面,注册页面的url是‘127.0.0.1:8000/register/,在原页面,网页url是127.0.0.1:8000,加上’/register/'就是注册页面的网址了。

还有另外一种写法,
在这里插入图片描述

{% url ‘users:register’ %}通过找到app_name,再找app_name下name为register的路由,app_name和name的命名任意。如果没有给路由取名,如无:name = “register”,会报错,提示找不到。
这种方式叫定义命名空间。

注册功能的实现:

一、用户表字段分析

  • 添加用户手机号字段
  • 添加邮箱状态字段

二、用户模式设计

代码如下所示:
在users的APP下的models.py文件写入
Django提供了django.contrib.auth.models.AbstractUser用户抽象模型类允许我们继承,扩展字段来使用Django认证系统的用户模型类。

from django.db import models
from django.contrib.auth.models import AbstractUser, UserManager as _UserManager


class UserManager(_UserManager):
    """
    define user manager for modifing 'no need email'
    when 'python manager.py createsuperuser '

    """

    def create_superuser(self, username, password, email=None, **extra_fields):
        super(UserManager, self).create_superuser(username=username,
                                                  password=password, email=email, **extra_fields)


class Users(AbstractUser):
    """
    add mobile、email_active fields to Django users models.
    """
    objects = UserManager()
    # A list of the field names that will be prompted for
    # when creating a user via the createsuperuser management command.
    REQUIRED_FIELDS = ['mobile']

    # help_text在api接口文档中会用到
    # verbose_name在admin站点中会用到
    mobile = models.CharField(max_length=11, unique=True, verbose_name="手机号", help_text='手机号',
                              error_messages={'unique': "此手机号已注册"}  # 指定报错的中文信息
                              )
    email_active = models.BooleanField(default=False, verbose_name='邮箱验证状态')

    class Meta:
        db_table = "tb_users"   # 指明数据库表名
        verbose_name = "用户"    # 在admin站点中显示的名称
        verbose_name_plural = verbose_name  # 显示的复数名称

    def __str__(self):  # 打印对象时调用
        return self.username

自定义的用户模型类还不能直接被Django的认证系统所识别,需要在配置文件中告知Django认证系统使用我们自定义的模型类。

在配置文件中进行设置
在settings.py文件中添加如下配置:

阅读源代码:'django.conf.global_settings'
AUTH_USER_MODEL = 'auth.User'#这块是原始django配置的模型类

AUTH_USER_MODEL = 'app应用名.模型类名'
AUTH_USER_MODEL 参数的设置以点.来分隔,表示应用名.模型类名。
# 自定义用户模型
AUTH_USER_MODEL = 'user.Users'

在这里插入图片描述
注意:Django建议我们对于AUTH_USER_MODEL参数的设置一定要在第一次数据库迁移之前就设置好,否则后续使用可能出现未知错误。

三 执行迁移

python manage.py makemigrations
python manage.py migrate

这时,输入迁移命令后,会发现出现报错。
在这里插入图片描述
在dev.py中加入下行代码,查看下路径
在这里插入图片描述
在这里插入图片描述
会发现路径中第二次比第一次多了两条路径,其余都与第一一样。
然后再执行生成迁移

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值