2019-10-05に投稿

Pythonで静的サイトを作った話

Pythonで静的サイトを作った話

ここ1ヶ月ずっと、Pythonで静的サイトを作ることに苦心していた。
Webアプリ作るのも楽しいけど、双方向性が必要なければ生HTMLを吐き出すサイトを作った方がサーバー維持費的にも優しい。

作ったモノ

カブガイド

使用した技術

  • Python3系
  • Vue.js(CDN)
  • Bootstrap

作ろうとしたきっかけ

2月くらいからPythonで色々書いていた。主にスクレイピングだったり、競技プログラミングのコードだったり、ラジバンダリ。
そろそろ、サイト作ってみてーな、Pythonで!的な感じで始めた。

技術選定

初期

  • Free
    お金は、ドメイン代金以外は払いたくないマンなのでSQL無しにこだわった。ちなみにドメインは取るとテンションが上がって開発したくなる。僕は、エンジニア用語が分からないがきっとドメイン駆動開発っていうモノなんだろう。

  • python
    何でもできる凄い奴。プログラミング初心者の僕でもチョットできる位の気分にさせてくれる。好き。

  • jinja2
    Pythonのテンプレートエンジン。以外と柔軟に使えて便利。

  • CSV
    技術でも何でも無いが、SQLいじってて思ったのはただの便利なCSVファイル(個人の感想です)だったのでCSVで作ってみようと思った。

株をテーマにした理由

日本は、人口減少などがあり再浮上はなかなか難しい。日本株に投資してもいいがアメリカ株が日本で変えることを知り、投資してみようと思った。そのための勉強としてサイトを作ってみようと思った。6000位だろ?余裕余裕。最初はそう思っていた。

FlaskやDjangoは?

サーバかかるから却下した。

Gatsbyは?

Gatsbyは素晴らしい。だけど、Js難しい。imageの取り回しが面倒(エラー出る)。Scriptタグ(AdSenseなど)がJSベースだとどうしても特殊な処理が必要になってしまい色々面倒。もう少しストレスなく創作したい。そう思っているうちに自作静的サイトジェネレーターを作り出していた。

作ってみて困ったところ、思ったところ

情報鮮度をどう扱うか

株って生モノで情報の賞味期限が短い。数秒で値段が変わる。つまり、腐ってしまう。初期バージョンでは直接CSVからAPI叩いて保存して、株銘柄のページをビルドするという手法を使っていたのだがあまりにも非効率だったのでやめた。そのため、APIからリアルタイムに数値を取得する必要があった。そこで、CDN版のVueを用いてAxiosでAPIを叩く方式を採用した。使いたいページだけ読み込むちょい足しレシピ的な使い方はかなり便利。

SQLは偉大

やってて、やっぱりSQLは、ビルドまたなくていいし便利だよな。とは思った。ビルド短くするために色々ゴニョニョやった処理はSQLの高速化にも使えそう。今度やってみよう。

次の目標

サイトはできた。あとはどうやって効率化していくかのノウハウを蓄積できたらいいな。


aocory

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント