このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
50_dialy:2023:06:03 [2023/06/03 01:18] – 作成 matsui | 50_dialy:2023:06:03 [2023/06/03 07:54] (現在) – matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== 2023.06.03 | + | ====== 2023.06.03 |
+ | Django環境は、[[06_virtualization: | ||
- | {{tag>jango python}} | + | test_project |
+ | |||
+ | ===== 1 アプリ作成 ===== | ||
+ | |||
+ | docker-compose run web django-admin.py startapp [アプリ名] | ||
+ | |||
+ | or | ||
+ | |||
+ | docker-compose exec web python manage.py startapp [アプリ名] | ||
+ | |||
+ | |||
+ | 例: | ||
+ | docker-compose exec web python manage.py startapp testapp | ||
+ | |||
+ | |||
+ | ===== 2 setting.py修正 ===== | ||
+ | |||
+ | アプリ作成時点だと下記のようになってます。 | ||
+ | |||
+ | プロジェクト名は「test_project」、アプリ名は「testapp」を例に説明 | ||
+ | < | ||
+ | # tree ./ | ||
+ | ./ | ||
+ | ├── db.sqlite3 | ||
+ | ├── manage.py | ||
+ | ├── test_project | ||
+ | │ ├── __init__.py | ||
+ | │ ├── __pycache__ | ||
+ | │ │ ├── __init__.cpython-38.pyc | ||
+ | │ │ ├── settings.cpython-38.pyc | ||
+ | │ │ ├── urls.cpython-38.pyc | ||
+ | │ │ └── wsgi.cpython-38.pyc | ||
+ | │ ├── asgi.py | ||
+ | │ ├── settings.py | ||
+ | │ ├── urls.py | ||
+ | │ └── wsgi.py | ||
+ | └── testapp | ||
+ | ├── __init__.py | ||
+ | ├── admin.py | ||
+ | ├── apps.py | ||
+ | ├── migrations | ||
+ | │ └── __init__.py | ||
+ | ├── models.py | ||
+ | ├── tests.py | ||
+ | └── views.py | ||
+ | </ | ||
+ | |||
+ | アプリインストールの設定を追加 | ||
+ | |||
+ | |||
+ | < | ||
+ | INSTALLED_APPS = [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | ===== 3.urls.py修正 ===== | ||
+ | |||
+ | 作成したtestappアプリのviewへアクセスするURL Pathを作成 | ||
+ | < | ||
+ | import testapp.views as test_view | ||
+ | |||
+ | urlpatterns = [ | ||
+ | path(' | ||
+ | ] | ||
+ | </ | ||
+ | |||
+ | ===== 4.view.pyを修正 ===== | ||
+ | |||
+ | GET されたら、ただテンプレートを表示。 | ||
+ | POST されたら、POSTされた値を表示するだけの、view | ||
+ | |||
+ | < | ||
+ | from django.shortcuts import render | ||
+ | |||
+ | # Create your views here. | ||
+ | from django.shortcuts import render, redirect, get_object_or_404 | ||
+ | from django.views.generic import TemplateView | ||
+ | |||
+ | from testapp.models import * | ||
+ | import logging | ||
+ | logging.basicConfig(level=logging.INFO) | ||
+ | logger = logging.getLogger(__name__) | ||
+ | |||
+ | class View(TemplateView): | ||
+ | template_name = " | ||
+ | |||
+ | def get(self, request): | ||
+ | context = {} | ||
+ | return render(self.request, | ||
+ | def post(self, request): | ||
+ | context = { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | } | ||
+ | logger.info(request.POST) | ||
+ | return render(self.request, | ||
+ | </ | ||
+ | |||
+ | ===== 5.template作成 ===== | ||
+ | |||
+ | 作成したアプリフォルダの下に、templatesフォルダを作成し、view.pyで記述したtest.htmlを用意 | ||
+ | < | ||
+ | Hello World! | ||
+ | < | ||
+ | |||
+ | {% if action %} | ||
+ | action = {{ action }} | ||
+ | < | ||
+ | {{ action }} が押されました。 | ||
+ | </ | ||
+ | name1 = {{name1}}< | ||
+ | name2 = {{name2}} | ||
+ | {% endif %} | ||
+ | <form method=' | ||
+ | {% csrf_token %} | ||
+ | <input type=' | ||
+ | <input type=' | ||
+ | <button type=' | ||
+ | <button type=' | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 6.ページ確認 ===== | ||
+ | |||
+ | GET後 | ||
+ | {{: | ||
+ | |||
+ | POST後 | ||
+ | {{: | ||
+ | |||
+ | {{tag>Django |