Django项目目录及项目文件介绍

这篇具有很好参考价值的文章主要介绍了Django项目目录及项目文件介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建项目

进入要创建项目的目录下,激活虚拟环境后,通过命令创建 Django项目

django-admin startproject 项目名

执行命令 django-admin startproject DjangoSite 创建了一个项目名为 DjangoSite 的Django项目

项目目录说明

|DjangoSite							项目根目录
├── DjangoSite						项目名称
│   ├── __init__.py					inti文件,标识当前所在的项目目录是一个 Python 包
│   ├── settings.py					项目配置文件
│   ├── urls.py						url路径文件
│   └── wsgi.py						WSGI服务器程序的入口文件
└── manage.py						命令行工具文件

项目文件说明

manage.py文件:项目根目录下的 manage.py 文件是管理 Django 项目的重要命令行工具,它主要用于启动项目、创建应用和完成数据库的迁移等。

__init__.py文件:DjangoSite根目录下DjangoSite的项目目录中,存在一个__init__.py文件,该文件用于标识当前所在的目录是一个 Python 包,如果在此文件中,通过 import 导入其他方法或者包会被 Django 自动识别

settings.py 文件:settings.py 文件是 Django 项目的重要配置文件。项目启动时,settings.py 配置文件会被自动调用,而它定义的一些全局为 Django 运行提供参数,在此配置文件中也可以自定义一些变量,用于全局作用域的数据传递。

url.py 文件:url.py 文件用于记录 Django 项目的 URL 映射关系,它属于项目的基础路由配置文件,路由系统是在这个文件中完成相应配置的,项目中的动态路径必须先经过该文件匹配,才能实现 Web 站点上资源的访问功能。

wsgi.py文件:wsgi.py 是 WSGI(Web Server Gateway Interface)服务器程序的入口文件,主要用于启动应用程序。它遵守 WSGI 协议并负责网络通讯部分的实现,只有在项目部署的时候才会用到它。

settings.py 文件

settings.py 文件是 Django 项目的重要配置文件,在Django项目的编程过程中,需要根据自己的实际需求来修改这个文件,从而实现某些特定的要求,所以需要对settings.py 文件的内容进行一个深入的解析并熟知里面的内容

1、BASE_DIR

用于绑定当前项目 BookStore 所在的绝对路径,项目中的所有的文件都需要依赖此路径

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

os.path.abspath(__file__) 方法返回当前文件的绝对路径(也就是settings.py 文件的绝对路径);

os.path.dirname(os.path.abspath(__file__))则是将文件和目录进行剥离,返回文件所在的目录的绝对路径,也就是settings.py文件所在的DjangoSite项目目录的绝对路径;

再来一次os.path.dirname(),再剥离一层,返回的就是DjangoSite项目根目录所在的绝对路径

如果不理解,可以使用print(BASE_DIR)打印一下,对这行代码的理解就会更深刻

2、SECRET_KEY
SECRET_KEY = 't!i%=ct7x@j*7+*fm-%x@5s@$rcm8n(+r246jf6%=yf5(3$odn'

这个变量的本质是一个字符串,可以理解为是一个秘钥,它一般配合加密算法 Hash、MD5 一起使用。例如用户密码的加密或者建立会话时用到的 sessionid 都需要用到 SECRET_KEY 。在实际的开发工作中,一般将它保存在系统的环境变量中以确保加密的安全。

3、DEBUG
DEBUG = True

用于配置 Django 项目的启用模式,有两种取值方式:

  • DEBUG = True用于在开发环境中使用,属于调试模式,在项目的运行过程中会暴露一些错误信息以方便调试。
  • DEBUG = False用于生产环境,表示不启用调试模式。注意,项目发布时一定要改为DEBUG = False
4、ALLOWED_HOSTS
ALLOWED_HOSTS = []

用于配置能够访问当前站点的域名(IP地址),当 DEBUG = False 时,必须填写,有以下三种使用方法:

  • [],空列表,表示只有127.0.0.1,localhost能访问本项目;
  • [‘*’],表示任何网络地址都能访问到当前项目;
  • [‘192.168.1.3’, ‘192.168.2.134’] 表示只有当前两个主机能访问当前项目。

如果是在局域网,让其它主机也能访问此站点,应使用 ALLOWED_HOSTS=['*'] 的方式。比如本地用虚拟机跑项目,要用Windows系统访问;或者是前端同事要访问你电脑上的项目。

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

这个参数是指当前项目中用来安装的应用(APP)的列表。

Django 把默认自带的应用放在这个列表里,比如 Admin 后台应用、Auth 用户管理系统等,在 Django 中把它们称之为“应用”。

可以根据自己的项目需求对其进行增加或删除,比如公司要单独开发一个后台管理系统,就可以把第一项 admin 注释掉。开发时自己编写的应用都必须在这个变量表中进行注册才能生效。所以这个列表需要经常的改动。

6、MIDDLEWARE
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',
]

它用于注册中间件,Django 默认加载了一些中间件。例如,用于处理会话的 SessionMiddleware 等,同样我们可以对这些中间件进行添加或者注释。

7、ROOT_URLCONF
ROOT_URLCONF = 'BookStore.urls'

它指定了当前项目的根 URL,是 Django 路由系统的入口。

8、TEMPLATES

它用于指定模板的配置信息,列表中每一元素都是一个字典。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

BACKEND所示是 Django 默认自带模板引擎

9、WSGI_APPLICATION
WSGI_APPLICATION = 'DjangoSite.wsgi.application'

项目部署时,Django 的内置服务器将使用的 WSGI 应用程序对象的完整 Python 路径。

10、DATABASES
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

它用于指定数据库配置信息,这里默认配置的是 Django 自带的 sqllite3 数据库。Django 支持多种数据库,在这个字典变量中更改数据库配置。常用的数据库有MySQL、oracle

DATABASES 中的字典元素:

  • ENGINE:指定使用的数据库引擎,可以通过 Django.db.backends 来查看哪些数据库可以与 Django 配合使用;
  • NAME:指定项目所用的数据库名;
  • USER:数据库用户名;
  • PASSWORD:数据库的密码;
  • HOST:数据库服务器地址,本地环境开发为 127.0.0.1
  • PORT:数据库的端口号,如 MySQL 默认端口是 3306。
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DjangoPro',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}
11、AUTH_PASSWORD_VALIDATORS

这是一个支持插拔的密码验证器,且可以一次性配置多个,Django 通过这些内置组件来避免用户设置的密码等级不足的问题。

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
12、语言配置项
LANGUAGE_CODE = 'en-us'

LANGUAGE_CODE 指语言配置,en-us是英文 ,zh-Hans 则代表中文。

13、时区配置项
TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

TIME_ZONE 指服务端时区配置, UTC指的是世界时区,若需要配置为中国时区,则将值修改为Asia/Shanghai

项目开发完成后,可以选择向不同国家的用户提供服务,那么就需要支持国际化和本地化。USE_118NUSE_L10N 这两个变量值表示是否需要开启国际化和本地化功能。默认开启的状态。I18N 指的是国际化英文缩写,L10N 指的是本地化英文缩写。

USE_TZ 指对时区的处理方式,当设置为 True 的时候,存储到数据库的时间是世界时间 UTC

14、STATIC_URL
STATIC_URL = '/static/'

STATIC_URL 指的是静态资源的存放位置。静态资源包括 CSS、JS、Images这些前端的内容文件。比如我们要在项目中添加一些图片,通常这些静态图片被存放在 static 目录下,通过 STATIC_URL= '/static/' 路径对静态资源进行访问。

15、DEFAULT_AUTO_FIELD
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

DEFAULT_AUTO_FIELD 指的是主键配置。

当没有将模型字段设置为该模型的主键时,Django 会自动在项目的模型添加一个名为 id 的字段,该字段将用作主键。这个自动添加的键通常是 AutoField 。Django 允许通过设置 AutoField 来设置用于这些自动生成的主键字段的 DEFAULT_AUTO_FIELD 类型。

从 Django 3.2 开始,主键的默认类型设置为BigAutoField,这是一个64位整数(64 bit integer)。早期版本将隐式主键的类型设置为整数(integer)。如果没有在模型中设置主键,会弹出没有显式定义的主键类型的警告。

创建应用

Django 项目就是基于 Django 框架开发的 Web 应用,它包含了一组配置和多个应用,我们把应用称之为 App。一个 App 就是一个 Python 包,通常一个 App 可以包含模型、视图、模板和 URL 配置文件,可以被应用到多个 Django 项目中,因为它们的本质就是可被重用的 Python 软件包。

利用 manage.py 提供的 startapp 命令创建APP

python manage.py startapp 应用名称

执行 cd DjangoSite 命令进入所创建的DjangoSite项目根目录下,再执行python manage.py startapp demo命令创建了一个名为 demo的应用

应用目录说明

|DjangoSite							项目根目录
├── demo							应用名称
│   ├── migrations					数据模型迁移记录目录
│   │   └── __init__.py				inti文件,标识当前所在的数据模型迁移记录目录是一个 Python 包
│   ├── __init__.py					inti文件,标识当前所在的应用目录是一个 Python 包
│   ├── admin.py					Django Admin 应用的配置文件
│   ├── apps.py						应用程序本身的属性配置文件
│   ├── models.py					用于定义应用中所需要的数据表的配置文件
│   ├── tests.py					用于编写当前应用程序的单元测试的测试文件
│   └── views.py					用来定义视图处理函数的文件
├── DjangoSite						项目名称
│   ├── __init__.py					
│   ├── settings.py					
│   ├── urls.py						
│   └── wsgi.py						
└── manage.py						

应用文件说明

migrations 数据模型迁移记录目录:migrations 目录用于存储数据库迁移时生成的文件,该目录下的 __init__.py 文件标识 migrations 是一个 Python 包。

admin.py 文件:admin.py 用于将 Model 定义的数据表注册到管理后台,是 Django Admin 应用的配置文件;

apps.py 文件:apps.py 用于应用程序本身的属性配置文件;

models.py 文件:models.py 用于定义应用中所需要的数据表;

tests.py 文件:tests.py 用于编写当前应用程序的单元测试;

views.py 文件:views.py 用来定义视图处理函数的文件;

在实际的开发工作中,应用目录下的文件不是一成不变的,开发者根据自己的需要增加文件或者子目录,比如 urls.py 文件或者存储静态文件的 static 目录等

应用的添加

应用创建完成后,还需要在 settings.py 配置文件中对其进行添加,在上面settings.py文件中介绍了 INSTALLED_APPS参数,创建完应用,需要将应用添加到这个列表里,添加完成后,demo应用才算和整个项目融为一体文章来源地址https://www.toymoban.com/news/detail-427675.html

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'demo',     # 添加应用
]

到了这里,关于Django项目目录及项目文件介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React创建项目(保姆级讲解,配置文件详细介绍)

    目录 说在前面的话 前期准备 一、React项目创建 二、配置文件详解 三、自定义组件-实现简单计算器demo 末尾         由于开始学习React框架,这里“简单”记录一下react通过脚手架创建项目的过程,并演示了一个计算器的demo。         在开始创建项目前,确认是否安装

    2024年02月04日
    浏览(32)
  • RT-Thread Studio使用经验——项目创建及文件介绍

    1.创建项目时会有两种选择 RT Thread项目 和 RT Thread Nano项目 ,RT Thread项目体量比较大,包含了RT Thread的大部分功能,比如应用层开发,驱动开发,图形界面开发等,生成程序的大小大约在50kb左右; RT Thread Nano属于轻量级的RT Pthread工程开发,只包含了基础的裸机开发的部分库文

    2024年02月08日
    浏览(43)
  • Django的静态文件目录(路径)如何配置?

    通常用下面的三条语句配置Django的静态文件目录 那么这三条语句分别的作用是什么呢? 请参考博文 https://blog.csdn.net/wenhao_ir/article/details/131986394 【搜索 注册静态文件目录】

    2024年02月06日
    浏览(58)
  • 【C++要笑着学】OpenFrameworks 框架介绍 | oF 文件结构 | 图形基础 | 使用 ProjectGenerator 创建项目

      💭 写在前面: 本章我们将介绍一个非常好用的跨平台的 C++ 开源框架 —— openFrameworks。它是一个开源的跨平台的 C++工具包,方便开发者创建出一个更简单和直观的框架,擅长开发图像和动画。     本篇博客全站热榜排名: 8 📜 本章目录: 0x00 openFrameworks 介绍 0x01 开启

    2024年02月04日
    浏览(84)
  • Flask 创建文件目录,删除文件目录

     项目结构  app.py templates / index.html 效果图  

    2024年02月16日
    浏览(56)
  • django——创建 Django 项目和 APP

    命令 : 创建Django项目 django-admin startproject name 创建子应用 python manager.py startapp name 2.1 创建工程 在使用Flask框架时,项目工程目录的组织与创建是需要我们自己手动创建完成的。 在django中,项目工程目录可以借助django提供的命令帮助我们创建。 2.1.1 创建 创建工程的命令为:

    2024年02月12日
    浏览(37)
  • Linux :: 【基础指令篇 :: 文件及目录操作:(4)】:: mkdir :: 创建目录:指定路径单个目录创建及一次性创建多级目录

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 目录索引: 1. 基本语法及功能 2. 基本使用示例 - - 2.1 当前目录下创建指定新目录 - - 2.2 指定目录下

    2024年02月06日
    浏览(59)
  • 【python】Django——django简介、django安装、创建项目、快速上手

    笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 Django 是一个高效、功能强大的 Web 应用程序框架,采用 Python 编写

    2024年02月20日
    浏览(54)
  • python - Django创建项目

    根目录下运行命令:    python manage.py runserver 直接使用 Pycharm 创建项目 django-admin startproject mysite     这样就会在当前目录下创建一个叫做 mysite 的Django项目。     可以看到Django自动帮我们创建了一个mysite文件夹,这是项目的根目录。在mysite根目录中,又有一个mysite目录,

    2024年04月11日
    浏览(41)
  • Django项目创建

    @ 目录 Django项目创建 👨‍🏫方式一:终端命令行方式 👨‍🔬方式二:Pycharm创建 1️⃣cmd打开终端,切换到指定目录下 执行:django-admin startproject mysite 【mysite 为项目名】,创建成功之后,出现如下: 2️⃣在项目根目录下【也就是manage.py所在目录下】,运行python manage.py

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包