📜  django app 目录 - Python (1)

📅  最后修改于: 2023-12-03 14:40:45.961000             🧑  作者: Mango

Django App 目录 - Python

简介

Django 是一个广泛使用的 Python 网络框架,用于开发大型、复杂的 Web 应用程序。Django 是 MVC(模型-视图-控制器)框架,旨在支持快速开发和易于维护的 Web 应用程序,而且还内置了强大的管理后台。

Django 应用程序通常由多个应用程序组成,每个应用程序都是可重用的专注于某个领域或某项功能。每个 Django 应用程序都要有自己的目录结构。

本文将介绍 Django 应用程序的目录结构,以便让程序员更好地组织和管理 Django 应用程序。

目录结构
my_app/             # Django 应用程序的根目录
    __init__.py     # 空文件,表明 my_app 是一个 Python 包
    admin.py        # 管理后台相关代码
    apps.py         # 应用程序配置
    models.py       # 模型代码
    tests.py        # 测试代码
    urls.py         # 应用程序的 URL 配置
    views.py        # 视图代码
    migrations/     # 数据库迁移代码
    static/         # 静态文件 (CSS, JavaScript, 图像)
    templates/      # HTML 模板
    templatetags/   # 模板标签
    locale/         # 本地化文件
    utils/          # 工具函数和类
    conf/           # 配置文件
__init__.py

__init__.py 是一个空文件,用于告诉 Python 解释器,my_app 是一个 Python 包。

admin.py

admin.py 包含管理后台相关的代码。Django 的管理后台提供了一种快速、简单的方式来管理应用程序中的数据模型。在这个文件中,可以定义数据模型的管理选项,比如指定哪些字段可以显示、哪些字段可以编辑等。

from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'description')
apps.py

apps.py 包含 Django 应用程序的配置信息,比如应用程序的名字和别名、默认数据库和应用程序的描述。

from django.apps import AppConfig

class MyAppConfig(AppConfig):
    name = 'my_app'
    verbose_name = 'My Application'
models.py

models.py 是 Django 应用程序中最重要的一个文件,包含数据模型的定义。Django 使用 ORM(对象关系映射)技术将数据模型映射到关系数据库中。

from django.db import models

class MyModel(models.Model):
    name = models.CharField(max_length=30)
    description = models.TextField()

    def __str__(self):
        return self.name
tests.py

tests.py 包含测试代码。Django 的测试框架提供了一种简单、高效的方式来测试代码。在这个文件中,可以编写各种测试用例,以确保应用程序的正确性和稳定性。

from django.test import TestCase
from .models import MyModel

class MyModelTestCase(TestCase):

    def setUp(self):
        MyModel.objects.create(name='Test Model')

    def test_my_model_name(self):
        model = MyModel.objects.get(id=1)
        self.assertEqual(model.name, 'Test Model')
urls.py

urls.py 包含应用程序的 URL 配置信息。Django 的 URL 配置框架提供了一种灵活的方式来处理 HTTP 请求,以根据 URL 映射到相应的视图函数。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
]
views.py

views.py 包含视图函数代码。Django 的视图函数处理 HTTP 请求,并返回 HTTP 响应或重定向到其他 URL。

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello, world!')

def about(request):
    return render(request, 'about.html', {'name': 'John'})
migrations/

migrations/ 目录包含数据迁移代码。Django 的数据迁移框架提供了一种灵活的方式来修改数据库模式和数据。

无代码片段
static/

static/ 目录包含静态文件,比如 CSS、JavaScript、图像等。

无代码片段
templates/

templates/ 目录包含 HTML 模板文件。Django 的模板框架提供了一种灵活的方式来生成 HTML 页面。

无代码片段
templatetags/

templatetags/ 目录包含模板标签代码。Django 的模板框架提供了一种简单的方式来自定义模板标签。

from django import template
from django.utils.safestring import mark_safe

register = template.Library()

@register.simple_tag
def bold(text):
    return mark_safe('<b>{}</b>'.format(text))
locale/

locale/ 目录包含本地化文件,用于国际化和本地化应用程序。

无代码片段
utils/

utils/ 目录包含工具函数和类。在这个目录中,可以编写各种实用程序和辅助函数来帮助应用程序的开发。

def my_utility_function():
    pass
conf/

conf/ 目录包含应用程序的配置文件,比如数据库配置、缓存配置、邮件配置等。

无代码片段
结论

Django 应用程序通常由多个应用程序组成,每个应用程序都应该有自己的目录结构。本文介绍了 Django 应用程序的目录结构,以及每个文件的作用和示例代码。理解 Django 应用程序的目录结构可以使程序员更好地组织和管理 Django 应用程序,提高开发效率和代码质量。