18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

東京理科大学Advent Calendar 2017

Day 6

Djangoでプロジェクトを始める

Last updated at Posted at 2017-12-10

はじめに

この記事は、自分がPythonで実装されたWebフレームワークDjangoを用いてコメント機能を付けた書籍リストを作っていた際の冒頭の流れを大雑把にまとめたものになります。
書籍リスト及びコメント機能を作る流れに関してはここでは触れません。続きを書くかどうかは未定です。
今回は初心者向けの記事とします。

環境構築の手順はドキュメント等をご参照ください。

[作業環境]
Python-3.6.2
Django==2.0

書籍リストの出来上がったサンプルはこちらになります。

(注意点)Djangoはバージョン2.0からPython2系のサポートが打ち切りになっています。Python3系で行うようにしてください。

プロジェクトを作成する

ここからプロジェクトを作る流れになります。次のコマンドを実行してください。

$ django-admin.py startproject libut

これでlibutというディレクトリが生成されました。中身を確認します。

$ tree libut
libut
├──libut
│  ├──__init__.py
│  ├──settings.py
│  ├──urls.py
│  └──wsgi.py
└──manage.py

確認出来ましたか?それでは移動しましょう。

$ cd libut

ここで、言語及びタイムゾーンの設定を日本(語)にしたいと思います。libut/settings.pyで変更出来ます。

settings.py
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

因みにデータベースの設定もこのファイルに存在します。デフォルトではSQlite3を使用するようになっています。

settings.py
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

それでは、データベースをマイグレートしましょう。manage.pyの位置するディレクトリに移動して次のコマンドを実行してください。

$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, 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 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 sessions.0001_initial... OK

無事に完了しました。
この時、db.sqlite3というファイルが現在自分のいるディレクトリに生成されているので確認してください。

サーバを起動する

試しに開発用サーバを起動してみましょう。

$ python manage.py runserver

http://127.0.0.1:8000 にアクセスしてみてください。
以下のように表示されたら成功です。

LocalServer.png

スーパーユーザの作成

次のコマンドを打ってスーパーユーザを作りましょう。

$ python manage.py createsuperuser

ユーザーネームやEmailアドレス、パスワードを設定します。
以下を見て頂けたらお分かりになると思いますが、短すぎるパスワードに対してはお叱りを受けるので注意しましょう。

Username (leave blank to use '◯◯◯◯'): admin #adminにする必要はない
Email address: libut@libutsample.com
Password: 
Password (again): 
The password is too similar to the email address.
This password is too short. It must contain at least 8 characters.
Password: 
Password (again): 
Superuser created successfully.

これで設定完了です。

アプリケーションを作成する

いよいよ、アプリの作成に取り掛かります。manage.pyがあるディレクトリに移動し、次のコマンドを用います。

$ python manage.py startapp books

これでbooksというディレクトリが生成されたので確認してみましょう。

$ tree -L 2 .
.
├── books
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── libut
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

ここからbooks内のmodels.pyviews.pyなどを編集したり、自動で生成されないurls.pyforms.pyなどを作成する流れになります。
またmodels.pyにおいて定義したデータのモデルを有効化する必要があるので、「booksがインストールされた」とプロジェクトに伝える為にlibut/settings.pyを編集することも忘れてはいけません。

おわり

今回の記事はここまでになります。
大雑把な流れでしたが、Djangoに少しでも興味を持てて頂けたら嬉しく思います。

18
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?