Djangoエントリー

Djangoとは

DjangoとはPythonのフルスタックWEBフレームワークです。

RubyのRubyOnRails, PHPのLaravelと並ぶ、有名なフレームワークです。

環境の構築方法

まずはPythonを入れましょう。

pip経由でDjangoをインストールすることができます。

HelloWorld出力まで

djangoのインストールとかは事前に実施済みの想定

django-admin startproject sample
python3 manage.py startapp hello

hellp/viewsを編集してHelloWorldを出力するように修正する

プロジェクトディレクトリ配下のsettings.pyのINSTALLED_APPSの部分に追加したアプリケーションを設定して認識させる

プロジェクト配下のurls.pyにルーティングの設定をしてパスに対してhelloアプリケーションの方を参照するように設定をする

python3 manage.py runserver

http://localhost:8000/hello/ にアクセスして正常に出力されるかを確認する。

最初だけ実施するコマンド&わかったこと

プロジェクトのディレクトリが

django-admin startproject {projectname}

のコマンドで生成される。

上記のコマンドで生成されたディレクトリ配下のsettings.pyでアプリケーションの管理設定ができるみたい

urls.pyでルーティングの設定ができるが、参照しているのはプロジェクト配下のurls.pyである(自動で生成されるもの)

Model

__str__ メソッドは実装しておくこと

※プロジェクトディレクトリ(今回ではsample)配下のsettings.pyファイルでDBについ設定することができるけど、今回は標準のSQLiteを使用する。

python3 manage.py makemigrations hello
python3 manage.py sqlmigrate hello 0001

※0001はマイグレーションファイルの番号で識別する

python3 manage.py migrate

model確認(おまけ)

python3 manage.py shell

下記コマンドで確認できる

>>> from hello.models import Choice, Question
>>> Question.objects.all()
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())
>>> q.save()
>>> q.id
>>> q.question_text
>>> q.pub_date
>>> quit

admin画面(http://localhost:8000/admin)

python3 manage.py createsuperuser

プロンプトに従ってユーザーを追加する

python3 manage.py runserver
http://localhost:8000/admin

View

http://localhost:8000/hello
http://localhost:8000/hello/1/
http://localhost:8000/hello/1/results/
http://localhost:8000/hello/1/vote/

にアクセスすることでそれぞれのルーティングにアクセスすることが可能

form関連

汎用ビュー

テストコード

python3 manage.py test hello

静的コンテンツ

管理画面

python -c "import django; print(django.__path__)"

コマンドでdjangoのソースファイルの場所を確認して、django/contrib/admin/templates 配下に存在している。

パッケージング

pip3 install setuptoola

を事前にインストールしておく

cd sampleDjango
mkdir ../django-hello
mv hello/ ../django-hello/
cd ../django-hello
touch README.rst
vi README.rst

⇒ 公開する際はライセンスをつけること

⇒ 多くはBSDライセンスの元に配布される

touch LICENSE
vi LICENSE
touch MANIFEST.in
vi MANIFEST.in
python3 setup.py sdist

distディレクトリにパッケージが生成される

pip3 install --user django-hello/dist/django-hello-0.1.tar.gz
pip3 uninstall django-hello

ここまででチュートリアル終了

最後に

チュートリアルのものをそのまま実施して、適宜コメントを追加したものです。 GitHubにも同様のものが上がっています。 https://github.com/hirotoyoshidome/sample-django