-
プログラムの概要(目的や背景などを含める)
- 目的:主に2つあり、一つ目は使った事がないDjangoフレームワームになれる事。2つ目は1ヵ月間で作りたいと思ったWebサイトを作れるかどうか試す事(今回は宇宙に関する情報のニュースまとめサイトを作ろうと試みた)
- 背景:これを作成したのはソフトバンクのインターンシップ終わりが終わって10か程が経った後の2017年の10月の1か月間で作成した。これは、ソフトバンクのインターンシップに行っている間私は、シェアハウスに住まわせて頂いていたのだが、そこにいた他大学の工学部の人たちのスキルや、ソフトバンクのインターンシップに参加している人たちのスキルを見て、”このままではダメだ”と思い、スキルアップの目的の自主的に作ろうと思ったのが背景にある。
-
使用言語、フレームワーク
- Pythonを使用。フレームワークはDjango。
-
プログラムを実行しなくとも動作が理解できる画像のキャプチャ画像など
-
起動方法、操作方法
-
起動方法
-
操作方法
- 画面中央に表示されている記事のトピックスで気になる記事にアクセスする
- または画面右側に表示されているカテゴリーから、気になるものを選択し、画面中央に表示されたトピックスの中から気になる記事にアクセスする
- リンク先に飛んで、ニュースを見る
-
-
ソースコードの解説
-
/space_post/settings.pyでデータベースの設定やメディアファイルや言語の設定など、各種設定を行っている。
-
/space_post/urls.pyでルーティングを行っている。
-
/space_post_app/admin.pyで、管理者ページ内に、カラムに連携されたデータの項目を追加
-
/space_post_app/forms.pyでコメント部分で用いるフォームの設定をしている
-
/space_post_app/models.pyでデータベースへの操作であるモデルを作成している
- class Categoryは記事のカテゴリをモデル
- class Articleは記事本体のモデル
- class Commentは記事に対するコメントのモデル
- class PopularPostは人気記事ランキングのためのモデル
-
/space_post_app/urls.pyでルーティングを行っている
-
/space_post_app/views.pyは、railsでいうコントローラの役割をしている。
-
/templates/space_post/base.htmlで全ページの共通部分を作成している
- View数により、過去一週間の人気ページがランキング形式で表示されるようになっている。(最大10件)
- Facebook, Twitter, はてなブックマークで共有を行う事ができる。
-
/templates/space_post/post_category.htmlでカテゴリ別の記事の表示を行うページを作成している
-
/templates/space_post/post_detail.htmlで読みたい記事をクリックした時の詳細ページを作成している
-
/templates/space_post/post_list.htmlで記事のトピックスを表示している部分を作成している
-
共通部分としては、GoogleAnalyticsAPIを入れており、連携させているので、ページごとのアクティブユーザ数などを知る事ができるようになっている。
-
/staticには、cssファイルとJavaScriptファイルとmediaファイルを格納している。
-
-
必要なライブラリ、ランタイム、環境
-
必要なライブラリ、ランタイム
- Djangoに標準搭載されているライブラリ
- requirements.txtに書いてあるライブラリ
-
環境
- クライアントとして使用する分には、HTTPSなので、ネットにさえ繋がっていれば全てのコンピュータで閲覧可能である。
- サーバOSに関しては、"heroku"PaaSサービスを用いてデプロイしている。
- Pythonのバージョンは3.6.2
- データベースは、開発はDjangoにデフォルトで付いているSQLite3だが、herokuではPostgreSQLを用いている
-
-
課題や展望
- Djangoを使用したのは今回が初めてであり、蛇足な処理や設定をしている部分が多々あると思われるので、そういった部分の改善をまずは行いたいと考える。
- 今後の展望としては、作りたいと思ったものは作れたが、現在の状況では著作権的にOUTなサイトであり、かつ、オリジナリティのかけらもないので、今後は自分が読んだ宇宙に関する本の書評ブログにしようと考えている。
- その他の改善点としては、記事を削除した際、その記事に使用した画像は残り続けてしまっているのでその画像の削除もできるようにしなければならない。
-
自己評価、感想 100点満点中80点だと考える。これは、Webページとしては完成度はあまり高くなく、セキュリティ的にも著作権的にも危うい所はあったが、Webサイトとしての基本機能やデザインは実装する事ができ、Djangoにも少しは慣れ親しんだので、目的の2つをある程度満たす事ができたと考え、80点という点数をつけた。 感想は、Railsに関しては、日本語のドキュメントも非常に多かったり、Railsの学習サイトがあったりと、比較的学びやすかったのだが。Djangoに関しては、日本語のドキュメントや学習サイトがほとんど見当たらず、あったとしても自分が作成したい機能に関わるものが無かったりと、非常に苦労を要した事は記憶に新しい。その時私は、Djnagoやその他の開発のためにも、"もっと英語を勉強しなければならないな"とつくづく思った。
-
参考文献、URL
- 【Django入門】urls.py(URLConf)の役割と使い方http://www.sejuku.net/blog/26584
- 【Django入門】フォーム(forms)を作ってみようhttp://www.sejuku.net/blog/30742#i-6
- タグDjangohttp://www.sejuku.net/blog/tag/django/page/2
- PyCharm の便利な使い方https://pythondatascience.plavox.info/python%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/pycharm%E3%81%AE%E4%BE%BF%E5%88%A9%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9
- Django ドキュメントhttp://djangoproject.jp/doc/ja/1.0/index.html
- Documentationhttps://docs.djangoproject.com/ja/1.11/intro/
- Deploy!https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/deploy/
- windows環境でのvirutalenvwrapperhttps://qiita.com/maisuto/items/91143d26b609d6cfc1ac
- Djangoを学ぶ(3):画像の表示http://www.tohuandkonsome.site/entry/2017/06/10/211145
- DjangoにおけるSTATIC_ROOT,STATICFILES_DIRS, STATIC_URLの違いとはhttps://ja.stackoverflow.com/questions/38052/django%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bstatic-root-staticfiles-dirs-static-url%E3%81%AE%E9%81%95%E3%81%84%E3%81%A8%E3%81%AF
- 枠線などを指定したい!CSSのborderの使い方【初心者向け】https://techacademy.jp/magazine/8626
- Django、on_deleteを使う(django2.0から必須)https://torina.top/detail/297/
- Djangoで、グーグルアナリティクスから人気ページを取得し表示するhttps://torina.top/detail/355/
- Django、ブログに使っているModelhttps://torina.top/detail/256/
- Django: フォーム内の選択項目をモデルの値で絞るhttp://blog.uc8.jp/?p=189
- Django でページングhttp://atasatamatara.hatenablog.jp/entry/2013/04/03/211454
- Herokuで単純なrubyスクリプトを定期的に実行するhttps://qiita.com/kasei-san/items/909f17c2c42b7e3a8489
- レポートの作成https://developers.google.com/analytics/devguides/reporting/core/v4/basics?hl=ja
- Facebook・TwitterのOGP設定方法まとめhttps://ferret-plus.com/610
- シェアデバッガーhttps://developers.facebook.com/tools/debug/sharing/?q=https%3A%2F%2Fsunspot331.herokuapp.com%2F
- twitter/Facebook/LINEのシェアボタンのカスタマイズ方法https://qiita.com/rico/items/a8ec7626e357ff34570b
- django テンプレートで markdown から html へ変換するhttps://qiita.com/teaka_experimen/items/d8fe5deba2f71cfa1de7
-
Notifications
You must be signed in to change notification settings - Fork 0
Djangoで作った初めてのWebサイト
License
tattuu/sunspot331_website
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
Djangoで作った初めてのWebサイト
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published