8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DjangoでWebアプリを作成してみた

Last updated at Posted at 2018-12-22

はじめに

興味本位でWebアプリを作成してみました.
普段は制御系やデスクトップアプリの作成,ちょっとした自動化用のスクリプト作成をやっており,webアプリに関しては完全に未経験でした.

9c28027d-b29a-4b35-bd0e-e89d944496e3.jpg

いきさつ

普段読書メーターというサイトで読んだ本を管理しているのですが,このサイトでは今月先月分の読書数か記録を始めてからのトータルの情報しか見ることができませんでした.
そこで記録を始めてからの月ごとの読書データを取得し,グラフ化するようなスクリプトを作成して使用していました.ついでに勉強がてらやってみるかと思い作ってみました.

環境

・Heroku
・python-3.6.6
・Django-2.1.1

Djangoの勉強にて参考にしたサイト

Django Girlsのチュートリアルを一通りやったのですがいまいち理解しきれず,paizaの2系対応の記事も参考にしました.
Django Girls のチュートリアル
Django2.1入門: 初心者でも10分でWebサービスを作れる!PythonフレームワークDjangoとPaizaCloudの使い方
Django ドキュメント

つまずいた点・対応策

  • ajax
    解析に時間がかかるため,非同期にしなきゃと思ってajaxってのでできるらしい程度の知識しかなかったので,それで調べてやってみました.
    Djangoで、Ajax
  • heroku環境でのファイルの扱い
    AmazonS3を使えばよいとのことでしたがどうすればいいのかわからず調べ回った結果,一番わかりやすかったのが以下でした.
    How to Setup Amazon S3 in a Django Project
  • heroku環境にて実行時のタイムアウト対策
    読書メーターから読書データを解析するのにデータが多いとherokuのタイムアウト時間である30秒を超えてしまいます.そのためには一旦30秒以内にレスポンスを返してやる必要があるとのことで,わからないながら調べた結果celeryにて非同期処理を実施し以下のような処理を行うようにしました.(正直何が正しいのか全くわかってないのでもっと良い方法があるのかも知れない・・・.)
    seq.png
    【Django】Celeryを試してみる
    Djangoで非同期処理 - Celery, Redisを使って
    Celery

反省点

・フロントエンドの知識不足
htmlもcssもjsもほぼわからないままで手をつけて見よう見まねでとりあえず動くものは出来たものの,ちょっと理解不足感が否めないことに・・・.
いったんちゃんと勉強しないといけないと思いました。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?