• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / DjangoのModelFormでFormから送信したデータを挿入する

DjangoのModelFormでFormから送信したデータを挿入する

1 DjangoのFormから送信したデータを登録する
2 関連記事


DjangoのFormから送信したデータを登録する

DjangoでFormでは、画面からPOSTリクエストを送信し、モデルと連携してデータを登録することもできる

以下のような流れで処理を定義する

  1. モデルの作成(models.py)
  2. フォームでモデルのインスタンスを定義(forms.py)
  3. ビューからテンプレートにフォームを渡して、POST時に登録するように記述する(views.py)
  4. テンプレートにForm送信画面を作成(user.html)
  • models.py(モデルの定義)
from django.db import models

class User(models.Model):
    first_name = models.CharField(max_length=128)
    last_name = models.CharField(max_length=128)
    email = models.EmailField(max_length=264, unique=True)
    age = models.IntegerField(default=0)

  • forms.py(フォームの定義)
from django import forms
from app.models import User

class NewUserForm(forms.ModelForm): ModelFormを継承
    class Meta():
        model = User # モデルのインスタンスを生成
        fields = '__all__' # fieldsに__all__をセットすると、モデル内の全てのフィールドをフォームのフィールドに用いる

  • views.py(ビューの定義)
from django.shortcuts import render
from app.models import User
from app.forms import NewUserForm

def users(request): # form登録用のビュー
    form = NewUserForm(request.POST or None) # formのインスタンス作成

    if form.is_valid():
        form.save(commit=True) # form.saveとするとデータが登録される
    else:
        print('ERROR FORM INVALID')
    return render(request, 'app/user.html', {'form': form})

  • user.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>
        </title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    </head>
    <body>
    <h1>Please sign up here</h1>
        <div class="container">
            <div class="jumbotron">
                <h1>welcome</h1>
                <form method="POST">
                    {{ form.as_p }}
                    {% csrf_token %}
                    <input type="submit" class="btn btn-primary" value="Submit">
                </form>
            </div>
        </div>
    </body>
</html>

画面上には、以下のように表示される

送信をした結果、画面に以下のようにユーザ情報が登録される。

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 DjangoのFormから送信したデータを登録する
2 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約