Django创建子应用和模型-Day2

Django创建子应用和模型

构建目录结构

一个项目往往有许多子模块、媒体文件、静态资源文件等,为了管理好项目,在构建项目的时候需要创建不同文件目录方便编码和管理。

  1. myapps:统一子应用管理文件
  2. static:统一静态资源管理文件
  3. metia:统一媒体文件
  4. extra_apps:统一第三方应用文件
  5. utils:统一工具类文件

Django创建子应用和模型-Day2

; 添加导包路径

在setting.py文件需要配置应用管理文件的路径,以此定位子应用的路径

sys.path.insert(0, os.path.join(BASE_DIR, 'myPro', 'myapps'))

其中BASE_DIR是setting.py文件的路径,使用join语句把括号里面的参数进行拼接,拼接成自己的应用文件路径即可。建议打印拼接的路径是否与实际路径相符,不然容易混淆。

创建和注册子应用

1.创建子应用

打开终端,进入myapps文件路径,通过程序入口文件manage.py创建应用,文件路径要找对,执行以下命令创建子应用:

 python ../../manage.py startapp demo5

运行成功后没有消息返回,应用文件里面已经创建了新的子应用,我这里创建了很多测试用例

Django创建子应用和模型-Day2

2. 注册

回到setting.py设置文件给子应用注册,找到INSTALLED_APPS,添加刚刚创建的应用名字

Django创建子应用和模型-Day2

; 创建应用模型

安装pymysql模块

进入项目的虚拟环境执行安装 pip install Pymysql

引入pymysql模块

Django创建子应用和模型-Day2

; 写user用户模型

为user子应用添加用户模型并继承系统的user类,代码如下

from django.contrib.auth.models import AbstractUser
from django.db import models
class Users(AbstractUser):
    nickName = models.CharField(verbose_name='昵称', max_length=10)
    name = models.CharField(verbose_name='姓名', max_length=10)
    password = models.CharField(max_length=16, verbose_name='密码')
    phone = models.CharField(max_length=11, unique=True, verbose_name='电话号码')
    GENDER = (
        ('male', '男'),
        ('female', '女')
    )
    sex = models.CharField(choices=GENDER, verbose_name='性别',max_length=10)
    birthday = models.DateField(verbose_name="生日", null=True, blank=True)
    address = models.CharField(verbose_name="地址",max_length=20)
    image = models.ImageField(verbose_name='头像', upload_to='media/%Y/%m', default='defalut.jpg')  # /%Y/%m日期年月

    class Metas:
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

    def Meta(self):
        if self.nickName:
            return self.nickName
        else:
            self.nickName

修改setting.py,由于模型继承系统类,并且用到文件存储,还需要进行相应修改
1.修改系统用户模型为自定义模型
2.定义媒体文件路径

AUTH_USER_MODEL = "users.Users"#定义用户数据,子应用名.类名
MEDIA_URL = '/media/'  #存储媒体文件相对路径
MEDIA_ROOT = os.path.join(BASE_DIR,'myPro/media')

#数据库配置,使用mysql,我的配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #定义连接mysql
        'HOST': '127.0.0.1',#主机
        'PORT': 3306,#端口
        'USER': 'root',
        'PASSWORD': '123456',
        'NAME': 'django',#数据库表名
    }
}

模型迁移到数据库

1.迁移

python  ../../manage.py makemigrations

2.创建

 python  ../../manage.py migrate

创建成功在数据库可以看到具体表

Django创建子应用和模型-Day2
今天刚学到这里,踩的最大坑就是最开始导应用包路径和注册的问题,最开始跟老师敲的路径对不上,后面离谱的是注册问题,一直显示myapps模块找不到,我跟着老师之前敲得是之前的配置好像myapps.users.UsersConfig,导致它一会可以创建应用但是迁移失败显示找不到myapps,后面折磨一个小时发现注册应用的名字就好了,后面想想确实如此,我最开始已经导了myapps包路径。

Original: https://blog.csdn.net/sandmswift/article/details/124112886
Author: 日出青山在
Title: Django创建子应用和模型-Day2

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736481/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pandas 数据处理-Group by操作

    使用 “group by” 方式我们通常会有以下一个或几个步骤: Splitting:根据某一准则对数据分组 Applying :对每一分组数据运用某个方法…

    Python 2023年8月6日
    064
  • 学生选课管理系统(python)最后附源码,码字不易点个关注!

    目录 项目描述: 开发计划 学生选课管理系统主要包括三大内容: 进度计划 需求分析 1.系统总体设计需求分析 2.系统功能模块需求分析 系统设计 1.系统总体设计 2.系统详细设计…

    Python 2023年7月31日
    0123
  • Python + Django4 搭建个人博客(二):准备开发环境

    目录 Python3 Python3 下载 Python 安装 在 Windows 设置环境变量 Pycharm Django MySQL 安装MySQL SQLYOG 结语 本系…

    Python 2023年8月3日
    070
  • 千古前端图文教程-HTML009- HTML5详解2

    HTML5详解2 HTML5详解2 本文主要内容 #拖拽 #1、拖拽元素 2、目标元素 历史 #地理定位 #获取地理信息的方式 #1、IP地址 #2、三维坐标: #3、用户自定义数…

    Python 2023年6月12日
    093
  • 【深度强化学习】多智能体算法汇总

    0 Preliminaries 在多智能体强化学习算法中,两个主要的技术指标为合理性与收敛性。 合理性(rationality):在对手使用一个恒定策略的情况下,当前智能体能够学习…

    Python 2023年9月27日
    049
  • 可视化之路(八)Ellipse类详解

    概述 以下是 maplotlib 库中的继承图: 由继承图可知,Ellipse 类就是一个负责处理椭圆和类椭圆图形的类。由于其继承自 Patch 类,可以指定边缘线宽、颜色、填充色…

    Python 2023年9月6日
    065
  • 5.pytest之结合requests库实现接口自动化

    1.requests简介 requests用来发送http请求以及接收http响应的python第三方库,主要用于接口自动化测试。 安装: pip install requests…

    Python 2023年9月10日
    063
  • Python 元类详解

    一、Type介绍 在Python中一切皆对象,类它也是对象,而元类其实就是用来 创建类的对象(由于一切皆对象,所以元类其实也是一个对象)。 先来看这几个例子: 例1: In [1]…

    Python 2023年11月1日
    055
  • 深度学习框架新手快速上手指南

    新手入门深度学习框架怎么办?快速、可拓展、易于使用且支持自动求导的深度学习框架-MegEngine 配备了新手入门文档,助力初学者快速上手框架。 新手入门深度学习框架怎么办?快速、…

    Python 2023年10月24日
    039
  • 数百个模型放在面前,金融机构要如何高效管理

    疫情推动金融机构加速数字化转型。依托人工智能、大数据等技术,金融机构建立各类模型,特别是以机器学习为代表的数据模型,被广泛运用在风险计量、客户准入、资本计量、拨备计提、客户管理、反…

    Python 2023年9月30日
    058
  • Python数据分析常用包-pandas

    读者需知:本文为个人实践过程中的总结记录,当中有未知变量名为当时实践时使用。 以numpy为基础,基于matplotlib可以简单画图。 ​ 数据处理能力强 三大数据结构 ​ Se…

    Python 2023年8月21日
    041
  • frp使用oidc认证和搭建

    frp 是什么? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节…

    Python 2023年8月5日
    063
  • django+vue兼容

    安装node Node.js 安装v14.17.1版本 安装vue-cli 运行命令安装vue-cli 3.12.1 sudo npm install -g @vue/cli@3….

    Python 2023年8月5日
    050
  • CoCo数据集下载

    文章目录 1.介绍 2.下载 * 2.1 官网 2.2 百度网盘 2.3 下载到linux服务器 1.介绍 MS COCO的全称是Microsoft Common Objects …

    Python 2023年9月27日
    044
  • pycharm安装教程,超详细

    python学习资料下载地址:python学习资料整理在安装pycharm之前,确保你的电脑配置好了python,没有下载安装的可以去看我的文章—>>>pytho…

    Python 2023年11月8日
    075
  • Study—Pytest

    1 安装模块 pip install -U pytest pip install -U pytest-xdist pip install -U pytest-rerunfailur…

    Python 2023年9月12日
    051
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球