はじめに
インターン先でプログラミング勉強中の文系学生。
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 all
やApplying
がたくさん出てくればデータベースができてるらしい。
ちゃんと稼働しているかを確かめるには、
$ python manage.py runserver
でサーバーを動かして、http://127.0.0.1:8000/
をブラウザで確認。
これでいいのかな?
ブログシステムの作成
アプリケーションを作っていきますか。
$ python manage.py startapp blog
これでブログに関するプロジェクトができたね。
settings.py
のINSTALLED_APPS
に'blog',
を追加。
続いて、blog
ディレクトリの中にあるmodeis.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!!
管理者の作成
次に、投稿したブログを追加したり、編集したり、削除したりするための設定をしていこう。
blog
のadmin.py
を以下の内容に変えるのね。
from django.contrib import admin
from .models import Post
admin.site.register(Post)
そしたら、$ python manage.py runserver
でhttp://127.0.0.1:8000/admin/
をブラウザで開く。
(・∀・)イイネ!!
さてさて、管理者を作っていきますか。
$ python manage.py createsuperuser
そうすると、以下のことを聞かれる。
まぁ、忘れなければ自由に設定していいでしょ。
Username:
Email address:
Password:
Password (again):
スーパーユーザーができたら、$ python manage.py runserver
でhttp://127.0.0.1:8000/admin/
に接続。
ログイン情報はさっきの通り。
できた!!
まとめ
今回は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