MENU

Djangoのインストールからプロジェクトの作成まで

2020 2/11
Djangoのインストールからプロジェクトの作成まで

こんにちは,ちゆりです。

個人的にはpythonのフレームワークはFlaskを使うことが多く,自分の好みなのですが,「そろそろdjangoも覚えておくのもいいな。」と思ったのでdjangoをサクッと導入してみた。

  • djangoのインストール導入
  • プロジェクト(アプリ)の作成
  • プロジェクト(アプリ)の起動・立ち上げ

django2.x(django2.0系)で行っていきます。

目次

djangoのインストール・導入

djangoをインストールする前に仮想環境を構築することをおすすめしています。
僕は普段,virtualenvで仮想環境を構築しています。

導入方法にお悩みの方は以下の記事で3分間で導入完了できます。

あわせて読みたい
pythonで仮想環境構築〜おすすめはvirtualenv
pythonで仮想環境構築〜おすすめはvirtualenvpythonで開発を行う際には仮想環境を構築するのをおすすめします。いろいろなライブラリをインストールして動かして,必要がなくなったら消して…というのを繰り返してい...

では,早速djangoをインストールしていきましょう。

$ pip3 install django

 

そして,プロジェクトの作成を行います。
*この際のプロジェクト名(今回の場合はTestSite)は任意でOK

これによりプロジェクトディレクトリが作成され、必要なファイルが自動生成される

$ django-admin startproject TestSite

 

作成されたプロジェクトディレクトリ内でwebアプリのテンプレートを作成
*この際のアプリ名(今回の場合はmyapp)は任意でOK

$ cd TestSite
$ python3 manage.py startapp myapp

 

データベースを扱う場合は プロジェクトディレクトリ内で ,以下のコマンドを実行

$ python3 manage.py migrate

これで一通りのプロジェクトファイルが揃い、設定が完了です。

djangoのmodels.pyの書き方

djangoのmodels.pyとは

Djangoのアプリケーションデータベースで、情報のやり取りを行う際のクラスの定義を行う。

「ORマッパー」がdjangoにはあるため、データベース操作といえばのSQLをほとんど触ることなくデータベースを操作することができる。

もちろんデータベースなしでdjangoを使うことも可能

models.pyの書き方

雛形は以下のよう書く

from django.db import models

# Create your models here.
class Reporter(models.Model):
    full_name = models.CharField(max_length=70)

    def __str__(self):
        return self.full_name

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):
        return self.headline

models.XXFieldでフィールドタイプを指定してモデルを定義可能です。

▼Articleクラス
pub_date:
日付
headline:文字列(最大200文字)
contents:テキストボックス
reporter:Reporterモデルへの紐付け (on_delete=models.CASCADEでReporterモデルが削除された場合紐付けられたインスタンスも一緒に削除することを指定)

Fieldの詳細は以下の記事を参考にするとわかりやすいです。
https://qiita.com/nachashin/items/f768f0d437e0042dd4b3
https://qiita.com/okoppe8/items/a1149b2be54441951de1

そして最後の

def __str__(self):
    return self.headline

では管理画面等で表示したい文字を返しています。
実際に作っていったほうがイメージが付きやすいですね。以下の記事がわかりやすいので参考に。https://www.naretora.work/entry/django-models-str/
(今回の場合はheadlineの値を返しています。)

作成したモデルの有効化

models.pyに追加したモデルの反映を行うためには、<プロジェクトディレクトリ>/setting.pyを変更します。

INSTALLED_APPSの配列に追加します。(使用するアプリケーションの反映)
INSTALLED_APPSにはデフォルトで以下のアプリケーションが存在します。

  • django.contrib.admin
    • 管理サイトアプリ
  • django.contrib.auth
    • 認証アプリ
  • django.contrib.contenttypes
    • コンテンツタイプフレームワーク
  • django.contrib.sessions
    • セッションフレームワーク
  • django.contrib.messages
    • メッセージフレームワーク
  • django.contrib.staticfiles
    • 静的ファイルの管理フレームワーク

その下に"<アプリ名>.apps.<アプリ名>Config"を追加します。
(今回の場合"myapp.apps.MyappConfig"となる)

よってINSTALLED_APPS

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

となる。

アプリケーションの追加が終わったら、変更の反映(マイグレーション)を行います。これを忘れずに行いましょう。

マイグレーション
Djangoがモデルの変更をディスク上のファイルに保存する

マイグレーションは,プロジェクトディレクトリ直下(この場合TestSite直下)で実行すればOK
*この際のアプリ名(今回の場合はmyapp)は必要であれば適宜作成したアプリ名に置き換える

$ python3 manage.py makemigrations myapp

そして続けて

$ python3 manage.py migrate

これで反映完了です。
エラーコードが出た場合はプロジェクト名、アプリ名がしっかり指定されているか確認してみましょう。

djangoアプリの起動・立ち上げ

実際にアプリを立ち上げてみないとイメージがなかなかつきませんね..。

ということで,早速アプリを立ち上げてみましょう。
manage.pyのあるディレクトリ内で以下のコマンド

$ python3 manage.py runserver

その後, http://127.0.0.1:8000/ へアクセスを行うとdjangoのアプリケーションの起動が確認できるかと思います。

このようなページが表示されるかと思います。

Djangoの管理画面へログイン

アプリを立ち上げた後にhttp://127.0.0.1:8000/adminへアクセスを行うと管理画面ログイン画面が表示されるかと思います。

このままでは,ユーザー名,パスワードを入力してもログインできませんので管理者の追加を行います。

$ python3 manage.py createsuperuser
  • Username: 空白だとデフォルトのユーザー名となります。
  • E_mail: 入力しなくても構いません。(エンターキーでスキップ可)
  • Password: 必ず入力しましょう。(2回入力を行います)

これらを入力し終えたらアプリを立ち上げhttp://127.0.0.1:8000/adminへアクセスを行い,設定したUsernamePasswordを入力すると,管理画面へログインできます。

Djangoのパスワード・ユーザー名を忘れた

これはあるあるですね。パスワードユーザー名を忘れた場合でも慌てることはありません。

まずは,ユーザー名を確認します。ユーザー名はdb.sqlite3に格納されていますのでDBの情報からユーザー名を確認します。

$ sqlite3 db.sqlite3

sqlite> select username from auth_user; //ユーザー名が出力されます
sqlite> .q  //一旦SQLiteから抜けます

ユーザー名を取得したらこのユーザーに対してパスワードの変更を行います。

$ python3 manage.py changepassword <ユーザー名>

これで,ユーザー名の確認パスワードの再設定完了です。
いつも通りログイン画面でログインできるかと思います。

 

アプリケーションの具体的な作成方法については,今後記事を更新していく予定です。

まずは,Djangoのインストールからプロジェクトの作成までの流れでした。

 

★次に読んでほしい記事

(実際にWebページの表示をさせていきます。)

あわせて読みたい
DjangoでHTMLで作成したページを表示させるだけ。ただそれだけ
DjangoでHTMLで作成したページを表示させるだけ。ただそれだけこんにちは。ちゆりです。ええ。まだやってますよ。Django.飽きもせずDjangoを触っています。Flaskから乗り換えるために一通りの実装を行い備忘録として記事でまとめて...
あわせて読みたい
Djangoの独自ログイン画面を実装してみる
Djangoの独自ログイン画面を実装してみるいままで,FlaskやDjangoでログイン画面を実装する際には,入力された値(ユーザー名やパスワード)をデータベースに問い合わせし,一致したらログイン成功,不一致の場合...

この記事が気に入ったら
フォローしてね!

この記事を書いた人

6年間化学を専攻していたのになぜか一部上場のIT企業のエンジニアへ。
普段はWeb系のITエンジニアとしてサラリーマンをしているが、脱サラ田舎暮らしに憧れ,システム開発やブログ収益化を目指す。

コメント

コメントする

目次
目次