皆さん、こんにちは。今日はDjangoのデータの追加について紹介したいと思います。 前回までで説明した事は以下になります。
- Djangoプロジェクト作成
- Django初期設定
- Djangoテンプレート説明
- DjangoCSS設定及び説明
- Djangoモデルの説明
- Django管理者機能の説明
- Djangoデータシード
- DjangoのForm機能
フォルダの構造は以下の様になっています。
mysite
├── hello
│ ├── admin.py
│ ├── apps.py
│ ├── fixtures
│ │ └── test-data.json
│ ├── forms.py
│ ├── __init__.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-36.pyc
│ │ └── __init__.cpython-36.pyc
│ ├── models.py
│ ├── __pycache__
│ │ ├── admin.cpython-36.pyc
│ │ ├── forms.cpython-36.pyc
│ │ ├── __init__.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── static
│ │ └── css
│ │ ├── bootstrap.min.css
│ │ └── style.css
│ ├── templates
│ │ ├── forms.html
│ │ └── index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
└── mysite
├── asgi.py
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── settings.cpython-36.pyc
│ ├── urls.cpython-36.pyc
│ └── wsgi.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py</pre>
データの追加の説明
以前admin画面でのデータの追加や、
データシードでのデータの追加を紹介しました。
今回は、前回のフォームを使ってデータベースに、
データを入れてみましょう。
データを受けとる方法
データを受けとる方法は以下になります。
WebからPOSTリクエストを受け取った時、
データを受け取り保存する。
(受け取って保存する動作はviews.py内で行います。)
コードは以下の様になります。
変数 = フォーム名(request.POST)
変数.save()
補足: 項目をrequest.POST.get(\’項目名\’)やrequest.POST[\’項目名\’]で取得し、 個別に入れて.save()しても追加できます。
変数 = フォーム名(
項目 = request.POST.get('フォームのName'),
項目 = request.POST.get('フォームのName'),
.
.
.
項目 = request.POST.get('フォームのName'),
)
変数.save()
今回は変数 = フォーム名(request.POST)でデータを取得します。 なのででmysite/hello/views.pyを以下の様に編集します。
from django.shortcuts import render
from .forms import SampleForm
def show_index(request):
# リクエストがPOSTの場合
if request.method == 'POST':
form = SampleForm(request.POST)
form.save()
return render(request,'index.html')
return render(request,'index.html')
def show_forms(request):
return render(request, 'forms.html',{'form':SampleForm()})
これで編集完了です。
データの追加
準備を整えたのでサーバーを起動してみましょう。 以下のコマンドを入力してください。
python manage.py runserver 0:8000
では<ipアドレス>:8000/adminに行ってみましょう。
その後、以前作った管理者でログインしてください。
ログイン後以下の画面になります。
そしてHelloアプリのPersoninfosをクリックしてください。
すると以下の画面になります。
データが三つあります。 (データシードのデータは消しましたので、格納してるデータは三つとなります。)
では<ipアドレス>:8000/helloに行ってください。
以下の画面になります。
そしてFill Formをクリックし以下のページに行きます。
そしてFormを入力しSubmitをクリックしてください。
そしてもう一回admin画面のPersoninfosに行きましょう
データの追加にに成功しました。
admin画面でのデータの追加は以上です。