Djangoを使って初めてWEBアプリを作成しました。
ログインなしで使えるのでよかったら試してみてね。
プログラミング初心者の方もアプリ作成の参考にどうぞ。
この記事では苦労した点などについて書いていこうと思います。
なぜ作ったか
よくサイトにある「買ってよかったもの」まとめサイトなどが大好きだから。
他の人がどんなものを買っているのか気になる。いいものがあったら自分も欲しい。よかったものを自分もシェアしたい。在宅ワークでおうち時間を良くしたい。などの思いがあり作成しました。
前回laravelで掲示板を作ったが、djangoも同じようなものだろと思い、勉強もかねてdjangoで作りました。
初のdjango laravelと比べて
laravelと比べて、導入や環境開発は簡単なでした。
laravelではdockerの導入や、ubuntuなどいろいろ導入をしたが、pythonさえ入っていれば?コマンドちょちょってすればできました。
今回アプリ作成に関して一番大変だったのは、デプロイかなー。
xserverへのデプロイでしたがエラー連発の末、どうにかデプロイできました、herokuや、awsを使うのが定石らしいのですが、あまりお金をかけたくないことから普段使っているxserverへデプロイしました。デプロイ時詰まったところはこの後、共有します。
アプリ作成に関しては、今回はlaravelで作成したWEBアプリ時とは違い、ログインなしで作成しました。そのためか、作成自体割とすんなりできました。
詰まったところは、外部キーの取得方法位?英語サイトも頑張って巡り情報を探してそれも解決。
ただlaravelと比べて、djangoのほうが日本語では情報が少ないような気がしました。
laravelで作成したおかげもあってか、前回苦労したDB設計もすんなりいけました。
Xserver Django初デプロイ、エラー連発
正直、Djangoデプロイ?日本語記事出てきたしいけるっしょーくらいに思ってました。
それが半日くらい詰まってしまった。
xserverにデプロイのためか、英語記事は出てきませんでした。。
参考にさせていただいた記事たち。
しょっぱなからエラー!
こんなにも記事があるのに!!エラーが解消できません。。
xserverにlinuxbrewをインストールする必要があるのですが、git、curlのバージョンが古いため、できませんと出る。
どうにか頑張って、git、curlのバージョンアップをしたが、gitエラーでremote-httpsが使えません?的なエラーが解消できず、結局minicondaを使って簡単デプロイ、ローカル開発でminicondaを使ってなかったためできれば、pipenvを使いたかったが、挫折。。下記リンクの方と同じところまで?いきました。
ただ、勉強になりました。
- xserverにソフト?(gitやopensslなど)を落とすのに
- ダウンロード
- 解凍
- configの設定?
- make
- make install
この手順でビルドが必要になるのがわかりました。
また、ビルドしたものは、パスを通して「このソフトを使うよ宣言」の必要があります。
普段、黒い画面をいじることは少ないのですが、いろいろ勉強になりました。
やっとデプロイ!!しかししかしの500エラー原因は改行コード
いろんな記事を見ると、500エラー、よくあることみたいです。
私の原因はcgiの改行コードでした。cgiはCRLFではなくLFにしなければいけないみたいで、ここで数時間かかった。。。
おそらくxserverに直接cgiを作成し、それをvscodeで作成したのが悪かった?
普段改行コードなど気にしないので全然気づかなかったが、たまにすごい悪さをする。
下記記事が参考になりました。
※vscodeに拡張機能code-eol を入れると改行コードが可視化できるよ
終わりに
一度CRUDを自力で作ってみると、ほかの言語での作成もほぼ似たようなものなので、laravelの時ほど難しく感じなかった。(成長?)
djangoはパイソンベースなので今後はpythonで機械学習や、データ分析などもやっていきたいなと思いました。
まだ知識が浅いのもあり間違えてるところなどありましたらご指摘ください。