Django项目架构介绍

Posted yangsun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django项目架构介绍相关的知识,希望对你有一定的参考价值。

项目的架构为:

1、虚拟环境virtualenv

  • 安装Django==2.1.3
  • 安装pymysql
  • 安装mysqlclient
  • 安装其他等

    2、项目结构为:

    应用APP:
  • blog -- 管理博客
  • account -- 管理用户注册/登录/等
    后台数据库:
  • mysql
    路由分层及命名空间:
  • 根据应用进行分层

from django.urls import path,include 
# 使用include方法
urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/',include("blog.urls")),
    path('account/',include("account.urls")),
]
  • 应用新增urls.py中,需写命名空间:app_name=xxxx

    3、项目配置:

  • APP应用配置
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', #配置创建好的blog,APP应用名
    'account', #配置创建好的account,APP应用名
]
  • MySQL配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': os.path.join(BASE_DIR,"db.cnf"),
        },
    }
}
### db.cnf
[client]
host = 127.0.0.1
port = 3306
database = 't_test_blog'
user = 'root'
password = '123456'
default-character-set = utf8mb4
  • 静态资源配置
步骤1:根目录下新建templates目录
步骤2:setting新增如下代码:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,"static"),  #一定要加一个逗号,
)
步骤3:修改TEMPLATES模板配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates"),], #改成templates
        'APP_DIRS': False, #改成False
        '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',
            ],
        },
    },
]
  • 邮件发送配置
EMAIL_HOST = 'smtp.163.com'
EMAIL_HOST_USER = "yang_song_lin@163.com"
EMAIL_HOST_PASSWORD = "YANGSongLin1993"
EMAIL_PORT = 25
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = "yang_song_lin@163.com"
  • 其他配置
中文及时区
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

后台调试用
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

部署用
DEBUG = True

ALLOWED_HOSTS = [] #表示不同访问地址

4、项目目录结构

项目工程名
├─account  account应用  处理用户相关
│  ├─migrations
│  └─admin.py
│  └─ apps.py
│  └─ forms.py
│  └─ models.py
│  └─tests.py
│  └─urls.py
│ └─urls.py
│  └─views.py
├─blog    blog应用    处理博客显示
│  ├─migrations
│  └─admin.py
│  └─apps.py
│  └─models.py
│  └─tests.py
│  └─urls.py
│  └─views.py
├─mysite  项目容器    
│  └─settings.py 基础配置项
│  └─urls.py     基础路由
│  └─wsgi.py     部署相关
├─static         静态文件夹
│  ├─css         CSS资源文件夹
│  ├─image       图片资源文件夹
│  ├─fonts       字体资源文件夹
│  └─js          js资源文件夹
└─templates      总模板
│   ├─account    account应用模板
│   ├─admin      admin应用模板
│   ├─blogs      blogs应用模板
│   ├─registration 
│   ├─base.html    基础模板,用于继承重写
│   ├─header.html  头部模板,用于重写
│   └─footer.html  页脚模板,用于重写
│
├─manage.py       运行文件
└─db.cnf          数据库配置文件

以上是关于Django项目架构介绍的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django Summernote 中显示编程片段的代码块?

如何使用导航架构组件查找子片段

Django框架学习-01Django介绍

03-Django基础概念和MVT架构

Django初窥

如何使用引导程序和 for 循环在 django 中创建电影片段?