Djangoにチャレンジしてみよう(2)

諸設定と動作確認

さて,Djangoには開発用のサーバが用意されているらしく,

mysiteディレクトリで立ち上げます.

python3 manage.py runserver

 

f:id:kachuno:20200727154837p:plain

サーバ立ち上げの確認

ブラウザ上にこのような画面が立ち上がりました.

これは成功なのか..??

とりあえず次に進みます,

 

言語に関する設定と,タイムゾーンの設定を行います.

mysite/settings.pyを変更します.

LANGUAGE_CODE = 'en-us'

⇨LANGUAGE_CODE = 'ja'

TIME_ZONE = 'UTC'

⇨TIME_ZONE = 'Asia/Tokyo'

 

 

そしてSQLiteというものを使えるようにmysiteディレクトリからコマンドを打ちます.この辺は意味がわからず書いてある通りに打ってみます.

$ python3 manage.py migrate

ここで

Django/db.sqlite3というファイルが新たにできていました..

 

データベースの管理者の設定を行います.

$ python3 manage.py createsuperuser

ユーザ名,メールアドレス,パスワードの入力を行いました.

 

 

すると見事!!

開発サーバを立ち上げるとブラウザにユーザ名,パスワード入力画面が出てきました.

ここでデータベースの管理者として簡単に管理することができるようです.

アプリケーションの作成

ここまででアプリケーションを格納する枠組みができたらしいので,実際にアプリケーションを作成してみます.

$ python3 manage.py startapp myapp

mysiteの中に,myappというファイルができました.

アプリケーションを認識させるためにsettingsを編集する必要があるようです.

INSTALLED_APPS = [
'myapp.apps.MyappConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

'myapp.apps.MyappConfig'を追記しました.

 

データモデルの設計

このアプリケーションで使うデータをモデル化し,それをデータベースに格納できるようにしていきます.models.pyに書き込みます.SNSをイメージし,本文と作成日時を格納するモデルを作成します.

 

 /mysite/myapp/models.py

from django.db import models

class Post(models.Model):
  content = models.TextField()
  created_at = models.DateTimeField(auto_now_add=True)

  def __str__(self):
   return self.content

 

contentとcreated_atはデータベースに登録する名前で,自由に設定できるようです.

 各クラスが一つの表となり,その中のfieldが一つの列と考えたらいいそうです..

この例ではPostクラスに対応する表では2つの列があり,文字列と日時のデータが格納されます.

 

これでデータモデルを定義できたのでデータベースの構成に反映させます.

外側のmysiteで次のコマンドを実行しました.

これはデータベースの構成を操作するためのマイグレーションファイルを作成するものだそうです..

python3 manage.py makemigrations

 さてここで,"Couldn't import Django."というエラーが出て,

ターミナルを新規で起動させていたので仮想環境に入り忘れていたという失態を犯しました..お気をつけくださいね.

仮想環境に入り実行するとすんなりいけました^^

続いてマイグレーションファイルを適用してデータベースの構成を更新します.

python3 manage.py migrate

 

追加したデータモデルを反映させるために,admin.pyを編集してadminサイトに登録する必要があります.

/mysite/myapp/admin.pyに以下を書き込みました.

 

from django.contrib import admin
from .models import Post

admin.site.register(Post)

 

しかし,ブラウザ上の表示が変わらない,,,

 

今回はここまでにします.

Djangoにチャレンジしてみよう

こんにちは,

Webアプリケーションを作りたくて,Reactの学習を進めていたのですが,

JavaScriptが難しくて,,

pythonのWebアプリケーションフレームワークであるDjangoの学習から進めてみよう!
という思いつきでDjangoに初めてチャレンジしていきたいと思います.

ということで進行状況を記録していきます.

ちなみに某学習サイトなどでDjangoに関するものがなかなかなかったので,

これらの記事を参考にさせていただきました.

https://qiita.com/j54854/items/7e935252a072a3642c01

https://pngnnet.herokuapp.com/post/e69a921d-c090-46e6-ba83-0034fc557622/

 

Djangoのインストール

pythonや仮想環境管理のpipは以前より使用していたのでまずは簡単にDjangoのインストールから...

$ python3 -m venv djangoenv

でdjangoenvという名前の仮想環境を作成します.

$ . djangoenv/bin/activate

そして仮想環境を有効化.

 

ここからは仮想環境に入ってのコマンドです.

$ pip3 install django

で無事にDjangoをインストール完了!

ちなみにバージョンは

$ python3 -m django --version

で確認でき,今回は3.0.8でした.

プロジェクトの作成

さて,プロジェクトの作成を次のコマンドで行います.

$ django-admin startproject mysite

mysiteという名前のプロジェクトができました.

このプロジェクトの中身を見てみると

/mysite

  -manage.py

  -mysite

    -__init__.py

    -asgi.py

    -settings.py

    -urls.py

    wsgi.py

 

となっていました.

さて,これは訳がわからない..

がとりあえず進めていきます.