Python バックエンド プログラム言語

Djangoテーブルにデータを追加する方法

皆さん、こんにちは。今日はDjangoのデータの追加について紹介したいと思います。

前回までで説明した事は以下になります。

フォルダの構造は以下の様になっています。

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

 

データの追加の説明

以前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画面でのデータの追加は以上です。

関連記事

-Python, バックエンド, プログラム言語

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.