Django
Windows10
未来電子

Djangoを使ってシステムの開発をしよう!! 文系学生がWindows10にインストールしてみた!!

はじめに

インターン先でプログラミング勉強中の文系学生。

Pythonのことを調べていたら、Djangoというフレームワークのことを知った。
これはインストールしないと!!

Djangoとは

Pythonに対応しているフレームワークらしい。
Webアプリケーションなど、一定のシステムを構築するときに、ある程度枠組みが完成しているから、簡単に作ることができる仕組みができているようになっているんだって。
まぁ、プログラマーには必須か。

Djangoの導入

Django Girls Tutorialを参考に、導入していこうっと。

Djangoをインストールする準備

まぁ、チュートリアルの最初のほうは、ある程度理解しているし、Djangoをインストールしようから始めていくか。

まずは、ディレクトリを作って…

$ mkdir django

そのディレクトリに移動。

$ cd django

仮想環境を作って…

$ python -m venv(仮想環境の名前)

実行!!

$  venv\Scripts\activate

できませんでした!!

このシステムではスクリプトの実行が無効になっているため、ファイルを読むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135
170) を参照してください。
だって。
まぁ、とりあえず、検索してみるか。

[Power Shell] Power Shellでスクリプトファイルを実行できるようにするによると、Power Shellのセキュリティー対策が原因らしい。
今がどんな状況化を確認するには、Get-ExecutionPolicyでできる。
ちなみに、Restrictedって表示された。

管理者でPowerShellを起動して、実行ポリシーを変更するのね。

$ Set-ExecutionPolicy RemoteSigned

を入力して、[Y]はい(Y)を打って、Enter!!

PowerShellを開きなおして、

$ cd django
$ myvenv\Scripts\activate

を打ってみると、
最初に(myvenv)が表示された!!
これでOK!!

Djangoのインストール

Djangoをインストールするには、最新のpipが必要みたい。

$ pip install --upgrade pip

を打ってみると、equirement already up-to-dateて出たから大丈夫だね。

それじゃあ、(2018/4/5時点で)最新の2.04をインストールするか。

$ pip install django==2.04

でDjangoのインストール開始!!

Djangoでブログシステムを作成する準備

インストールが終わったら、Djangoで簡単なプロジェクトを作っていくか。

$ python myvenv\Scripts\django-admin.py startproject mysite(プロジェクト名) .

でプロジェクトを作れるみたい。

作れたら、サイトの情報を日本にしていくか。
エクスプローラーから、mysiteにあるsettings.pyを選択して、エディタで開く。
該当する行を変更する。

LANGUAGE_CODE = 'ja-JP'

TIME_ZONE = 'Asia/Tokyo'

USE_TZ = False

続いて、データベースのセット。
sqlite3を使うなら、settings.pyで既にセットアップされているみたい。

$ python manage.py migrate

Apply allApplyingがたくさん出てくればデータベースができてるらしい。

ちゃんと稼働しているかを確かめるには、

$ python manage.py runserver

でサーバーを動かして、http://127.0.0.1:8000/をブラウザで確認。

スクリーンショット (2).png

これでいいのかな?

ブログシステムの作成

アプリケーションを作っていきますか。

$ python manage.py startapp blog

これでブログに関するプロジェクトができたね。
settings.pyINSTALLED_APPS'blog',を追加。

続いて、blogディレクトリの中にあるmodeis.pyを開いて、すべての内容を削除。
その後、次の内容を記入。

models.py
from django.db import models
from django.utils import timezone

class Post(models.Model):
    author = models.ForeignKey('auth.User')
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

内容が変更したことを、Djangoに伝えるために、

$ python manage.py makemigrations blog

と打つ。しかし…

TypeError: __init__() missing 1 required positional argument: 'on_delete'

init()なんて書いた記憶ないけどな…。
調べるか。
TypeError: init() missing 1 required positional argument: 'on_delete'によると、引数が足りてないみたい。
だから、on_deleteを追加してくれとのこと。

エディタで編集したら、できたできた。

$ python manage.py migrate blog

じゃあ、

$ python manage.py migrate blog
Operations to perform:
  Apply all migrations: blog
Running migrations:
  Applying blog.0001_initial... OK

OK!!

管理者の作成

次に、投稿したブログを追加したり、編集したり、削除したりするための設定をしていこう。
blogadmin.pyを以下の内容に変えるのね。

from django.contrib import admin
from .models import Post

admin.site.register(Post)

そしたら、$ python manage.py runserverhttp://127.0.0.1:8000/admin/をブラウザで開く。

スクリーンショット (3).png

(・∀・)イイネ!!

さてさて、管理者を作っていきますか。

$ python manage.py createsuperuser

そうすると、以下のことを聞かれる。
まぁ、忘れなければ自由に設定していいでしょ。

Username: 
Email address: 
Password:
Password (again):

スーパーユーザーができたら、$ python manage.py runserverhttp://127.0.0.1:8000/admin/に接続。
ログイン情報はさっきの通り。
スクリーンショット (4).png

できた!!

まとめ

今回はDjangoのインストールをしました!!
チュートリアルの途中だけど、ここまでくれば後は各々の自由にできるよね。
Djangoを使って、Pythonでシステムを構築していこう!!

参考資料

Django Girls Tutorial-https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/
[Power Shell] Power Shellでスクリプトファイルを実行できるようにする-http://windows-podcast.com/sundayprogrammer/archives/95
TypeError: init() missing 1 required positional argument: 'on_delete'-https://teratail.com/questions/87245