djangoのmodelsの基本動作 マイグレーションから表示まで実装①

djangoのプロジェクトのスタートが終わったところから、modelsの実装、そしてhtml側での表示までをやってみます。

ゴールはこのようにhtml側にmodelsに登録した内容を表示させます。
環境

・django2.2

・python3.8

環境ができたところで

$django-admin startproject myapp

myappプロジェクトが作成できたら下記コマンドを実行します。

$python manage.py runserver

http://localhost:8000/

にアクセスし、下記画面が出ていればOKです。

ここからスタートします。

my_friendアプリの作成

まずはアプリを作成します。

プロジェクトとアプリの違いに関しては公式から確認下さい↓

https://docs.djangoproject.com/ja/1.11/intro/tutorial01/

それではコマンドを打ち込みます。

$python manage.py startapp my_friend

こんなディレクトリ構造でアプリが生成されました。

settings.pyの設定

まずは、my_friendアプリを作成したのでsettings.pyの下記場所にdjango-contrib.my_friendを追記します。

‘my_friend’だけでもいいのですが、これは古い書き方で細微な問題もありますので、my_friend.apps.MyFriendConfigのような書き方をします。

<settings.py>

言語も下記のように変えておきます。

時刻も日本時間に変更します。

Friendモデルクラスの作成

友達登録フォームなので、このような形にします。

<my_friend/models.py>

そしてマイグレーションをします。

% python manage.py makemigrations

Migrations for 'my_friend':
my_friend/migrations/0001_initial.py
- Create model Friend

これでマイグレーションファイルを作成できました。

続いてマイグレーションの実行します。イメージとしてはマイグレーションで生成したファイルを使えるように本体に流し込むイメージです。

% python manage.py migrate

Operations to perform:
Apply all migrations: admin, auth, contenttypes, my_friend, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying auth.0010_alter_group_name_max_length… OK
Applying auth.0011_update_proxy_permissions… OK
Applying my_friend.0001_initial… OK
Applying sessions.0001_initial… OK

これでDBを操作できる準備は整いました。

管理ツールからFriendを登録してみる

my_friend/admin.py

これで管理ツール側でDBを操作できるようになります。

管理ツールに入り操作する

管理ツールを使うためにも、スーパーユーザーを作成する必要があります。

下記コマンドで作成します。Usernameやpasswordを聞かれると思いますので設定してください。

% python manage.py createsuperuser

設定ができたら早速ログインしてみます。

http://127.0.0.1:8000/admin/

にリダイレクトし、先ほど設定したUsernameとPASSでログインします。

そして早速何か登録してみます。

右下のSAVEを押して、サクセスできれば一先ずOKです。

htmlに表示する

最初にパスの設定を行います。

myapp/urls.py

my_friend/urls.py

my_friend/views.py

またmy_friendアプリ直下にtemplatesディレクトリとindex.htmlファイルを作成します。ディレクトリ構造は下記になります。

my_friend/templates/my_friend/index.html

そして、index.htmlに作成したファイルを表示できるかと思います。

※文字化けが対応できておりません。< は全て < となります。

cssも作成します。

パスは

my_friend/static/my_friend/css/style.css

それではhttp://localhost:8000/ へアクセスしてみます

とりあえず、表示ができました。先ほど管理ツール箇所で登録した内容がうまく表示されています。

長くなったのでこの記事はここでストップします。

次回は、ここからhtml側でデータの登録を行うコードを書いていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です