4

Django 项目后端模板

 2 years ago
source link: https://yuechuanx.top/django-backend-template/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Django 项目后端模板

Django 项目本身可以通过 django-admin 或者直接运行 python manage.py ARGS 来进行脚手架生成。但是生成的项目框架层次不算太好。

首先生成一个 Django 项目:

django-admin startproject backend

生成的项目框架如下:

backend
├── backend
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

其中的两个 backend 分别表示项目,以及 app 全局配置

建立文件夹 apps 用来放置应用,把内层 backend 改为 conf

backend
├── apps
├── conf
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py

注意这里需要配置以下几个文件:

# manage.py 
...
# os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'conf.settings')
...
# settings.py
...
# ROOT_URLCONF = 'backend.urls'
ROOT_URLCONF = 'conf.urls'
...
# WSGI_APPLICATION = 'backend.wsgi.application'
WSGI_APPLICATION = 'conf.wsgi.application'
...

现在可以测试 python manage.py runserver 是否可以起来。

接下来新建 Apps

mkdir apps/login
python manage.py startapp login apps/login

注册 app

# settings.py

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['apps'], # 添加 apps 文件夹
'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',
],
},
},
]


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

'apps.login',
]

导入 URL

...
from apps.login import urls as login_urls

urlpatterns = [
path('admin/', admin.site.urls),
path('login/', include(login_urls)),
]

现在一个基本的项目结构就建立好了。

backend
├── apps
│ └── login
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── conf
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
└── manage.py

相比起来层次更清晰,而且也更适合用作前后端分离的命名


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK