このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 4 / 昨日: 0
総計: 614
- Dokuwiki.fl8.jp(240)
- 13 CentOS6メール設定(14)
- FreeBSD カーネル再構築(11)
- 02 ProFTPD(11)
- 34 UnboundでHA構成(10)
- 06 GitPrep(10)
最近の更新
このページへのアクセス
今日: 4 / 昨日: 0
総計: 614
Django環境は、こちら で用意。
test_project
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
アプリ作成時点だと下記のようになってます。
プロジェクト名は「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
アプリインストールの設定を追加
test_project/settings.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'testapp', ]
作成したtestappアプリのviewへアクセスするURL Pathを作成
import testapp.views as test_view urlpatterns = [ path('test/', test_view.View.as_view()) ]
GET されたら、ただテンプレートを表示。
POST されたら、POSTされた値を表示するだけの、view
testapp/views.py
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 = "test.html"
def get(self, request):
context = {}
return render(self.request, self.template_name, context)
def post(self, request):
context = {
'action': request.POST.get('action'),
'name1': request.POST.get('name1'),
'name2': request.POST.get('name2'),
}
logger.info(request.POST)
return render(self.request, self.template_name, context)
作成したアプリフォルダの下に、templatesフォルダを作成し、view.pyで記述したtest.htmlを用意
testapp/templates/test.html
Hello World! <br> {% if action %} action = {{ action }} <h1> {{ action }} が押されました。 </h1> name1 = {{name1}}<br> name2 = {{name2}} {% endif %} <form method='post' action='/test/'> {% csrf_token %} <input type='hidden' name='name1' value='value1'> <input type='hidden' name='name2' value='value2'> <button type='submit' name='action' value='Button1'>Button1</button> <button type='submit' name='action' value='Button2'>Button2</button> </form>