Djangoを使ってポートフォリオサイトを作るまでv1


目次

■なぜDjango??

■下準備

■そもそもDjangoとは??

■Djangoでmysiteを作る

■チュートリアルテキストをDjango Girlsへ

■余談



■なぜDjango??

独学者にとって、プログラミング言語、あるいはその周辺ツールを学ぶ際、どれを学ぶか選択するうえで重要なのはリファレンスの充実と思っている。また昨今のWEBアプリやWEBサイトはPythonで開発されていることも踏まえると、Pythonで構築されたWEBフレームワークのDjangoを学ぶことは理に適った選択といえる。


先日今をときめくスポットコンサル仲介サービスのビザスクのCTOの花村さんが講師を務める下記の勉強会?に参加してきました。(2週間程度も前ですが(笑)。)

【サポーターズ勉強会】他言語の経験を活かす!Pythonで始めるtoC向けWebサービス開発

https://supporterz-seminar.connpass.com/event/83951/


勉強会に参加したときは、事前に下記の本で勉強していました。

この本のいいところは、pythonのインストールから基本文法、実践的なスクレイピング(扱うデータもレゴの商品一覧サイトと実践的。多くの技術書は自社のホームページをスクレイピングするという、あまりリアリティーのないもの(笑)。)、そしてDjangoというWebフレームワークの導入とスクレイプしたレゴの商品情報の掲載までと、【多岐にわたってpythonでできること】が紹介されています。

Djangoまで取り扱っている日本語のpython入門書は本書しかないと思われます(2018年5月9日現在)。

こちらはアフィリエイトリンクです。下記のリンクからご購入いただいた場合、私に紹介報酬がAmazonから振り込まれます。

ペーパーブック

kindle

値段は下記の通常のリンクからご購入いただいても変わりませんが、

こいつに紹介報酬が入ることが気に入らねえ!!

ということでしたら、通常のリンクからご購入ください。

ペーパーブック

kindle





僕の開発環境はWSLです。

プロジェクトごとにvenvで立ち上げることで、モジュールが無用な折衝を起こすことを防いでいます。


■下準備

$ sudo apt-get install apache2

appache起動

$ sudo service apache2 start
AH00076: Failed to enable APR_TCP_DEFER_ACCEPT 

↑は無視

ストップ

$ sudo service apache2 stop

mysql起動


$ sudo service mysql start
* Starting MySQL database server mysqld
No directory, logging in with HOME=/

、、、となったら接続

mysql -uroot -p
mysql>


と表示が変わる。

バージョンチェック

show variables like 'version';

接続解除

quit

ストップ

sudo service mysql stop


≪参考≫Window10でLAMP (Fall Creators Update版)
https://qiita.com/takepong/items/1b39a8096ac3db8012da


■そもそもDjangoとは??

・Django(ジャンゴ)は、Pythonで実装されたWebアプリケーションフレームワーク。
・複雑なデータベース主体の Web サイトの構築が簡単にできる。
・ファイルやデータのモデルにいたるまで、Python が一貫して用いられている。

≪wikipediaから一部抜粋、改変≫

Django

https://ja.wikipedia.org/wiki/Django


pip install --upgrade pip

pip install django

sudo apt-get install libmysqlclient-dev

sudo pip3 install mysqlclient

≪参考≫Pythonで始めるtoC向けWebサービス入門

https://www.slideshare.net/secret/drB3T1Kad68qHS

■Djangoでmysiteを作る

こちらのチュートリアルを参考に進めました。

日本語対応しています。

Django GirlsやQiitaなどもチェックしましたが、本家のチュートリアルが最も丁寧に書かれているように思います。

bootstrapを使ってサクッとUIを整えていくことも可能のようですが、実態として何が行われているのか不明では伸びしろが限定的と思い、まずは本家のチュートリアルに沿って開発を進めていきます。

≪参考≫Writing your first Django app, part 1¶


エラーメモ

ここでエラーが起きてチュートリアル通りに進めることができなくなったので、Django Girlsで学習を進めることとしましたorz

チュートリアル

>>> from polls.models import Question, Choice
# Make sure our __str__() addition worked.
>>> Question.objects.all()
<QuerySet [<Question: What's up?>]>

僕の場合はwhat's up?ではなく、、、。

>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>

models.pyを編集したのですが、変わらないんですよねー。


エラー箇所のチュートリアル部分

≪参考≫Documentation Writing your first Django app, part 2


■チュートリアルテキストをDjango Girlsへ

Django startproject mysite と打ち込むとディレクトリがこのようになりますよね?

最上層部にmysiteが作られるのが鬱陶しかったのですが、Django Girlsに最後にピリオドをつけるとこの問題が解消されると記載されていました。

mysite
├── manage.py
└── mysite
   ├── __init__.py
   ├── settings.py
   ├── urls.py
   └── wsgi.py


最後にピリオドをつける。 

(python仮想環境名称) ~/略$ django-admin startproject mysite .
補足 コマンドのコマンドの最後にピリオド (.) があることを確認してくださいね。これば、現在の作業ディレクトリにDjangoをインストールするということを示すので、とても重要なのです。
The period . is crucial because it tells the script to install Django in your current directory (for which the period . is a short-hand reference).

≪参考≫Your first Django project!


■余談

冒頭でお伝えしたセミナーでは、対C向けサービスの開発のノウハウが公開されました。そこで初耳だったツールを備忘録として列挙します。

Class-Based Viewsのコード
https://ccbv.co.uk/#
http://www.cdrf.co/

mixpannel
https://mixpanel.com/pricing/

fullstory
https://www.fullstory.com/pricing/

re:dash
https://redash.io/pricing/

この記事が気に入ったらサポートをしてみませんか?