学习编程基础的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的源代码中复制模板

(venv) C:\kanban\pollsite>python -c "import django; print(django.__path__[0])"
C:\kanban\venv\.venv\lib\site-packages\django


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

自定义应用程序模板
-
- アプリ特有のテンプレートは、各アプリのテンプレートディレクトリに配置される
例: 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的高级教程。敬请期待。