学习编程基础的Django+React(17): Django教程(投票应用程序第7-3部分)

[Django+React 学习编程基础 第16讲]: Django 教程 (投票应用程序第7-2部分)。

首先

这是Django官方教程的第7-3部分。
上一节中,我们在管理站点中添加了排序/搜索/过滤功能。
本节中,我们将使用Django模板来改善界面和用户体验。

Django应用创建(第7-3章):投票应用程序

这次的内容

    • テンプレートを使用し、管理サイトのルック&フィールをカスタマイズ

※ ルック&フィールとは

ソフトウェアのUI(ユーザーインターフェイス)における、見映えと使いやすさを指す

プロジェクトテンプレートをカスタマイズ
アプリケーションテンプレートをカスタマイズ

自定义项目模板

模板存储位置

    • プロジェクトのテンプレート

慣習として、プロジェクトディレクトリ(manage.pyの配置ディレクトリ)直下のtemplatesディレクトリに配置
プロジェクト設定ファイルのTEMPLATESオプションに、DIRSオプションを追加

DIRSは、検索パスで、ファイルシステム上のディレクトリのリスト

Djangoがテンプレートを読み込む際、チェックされる

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        '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',
            ],
        },
    },
]

从Django的源代码中复制模板

image.png
(venv) C:\kanban\pollsite>python -c "import django; print(django.__path__[0])" 
C:\kanban\venv\.venv\lib\site-packages\django
image.png
image.png
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">投票管理サイト</a></h1>
{% endblock %}
    VS Codeコマンドプロンプトからサーバーを起動
(venv) C:\kanban\pollsite>python manage.py runserver
image.png

自定义应用程序模板

    • アプリ特有のテンプレートは、各アプリのテンプレートディレクトリに配置される

例: polls/templates

プロジェクト設定ファイルsettings.jsonで、TEMPLATESのAPP_DIRS属性がTrueと設定されている場合

Djangoは自動的に各アプリのディレクトリからフォールバックとしてtemplates/を探す

※ 上記操作で、テンプレートのコピー元のdjango.contrib.adminも、実は一つのアプリに相当

应用程序模板 vs. 项目模板

    • アプリケーションテンプレートを使用するのが賢明

メリット1: 投票アプリを他のプロジェクトにも追加できる
メリット2: 投票アプリ自身にフィットした、カスタムテンプレートを使用できる

在实际项目中,通过模板进行定制化。

    • Djangoのデフォルトの管理テンプレートはすべてオーバーライドできる

 

    • 上記チュートリアルで紹介したアプローチは、テンプレートをオーバーライドする方法を示すため

 

    実際のプロジェクトでは、django.contrib.admin.AdminSite.site_header属性を使用しカスタマイズ

模板语言

    • テンプレートで使用される{%と{{タグ

Djangoのテンプレート言語の一部
Djangoがadmin/base_site.htmlをレンダリングする時、テンプレート言語が評価され

最終的なHTMLページが生成される

我使用了上述模板,对管理网站进行了定制。

最后

这样一来,我已经完成了Django官方教程的基本实践。
不仅仅是应用程序构建技巧,我还深受应用程序设计思想的启发。
下一次是Django的高级教程。敬请期待。

[下一回] 以 Django+React 学习编程基础(第18课): Django 高级教程(如何编写可重用的应用程序)
广告
将在 10 秒后关闭
bannerAds