さくらのレンタルサーバがPython3対応に
さくらのレンタルサーバが新サーバになり、移行ツールを使って移行を完了。Python 3.8が使えるようになりました。(Gmailが届かなくなった話はこちらを参照ください)
Pythonでサイト構築
4月から猫を飼い始め、Instagramに写真をアップロードするようになりました@maguandiwa。そうすると、過去の写真が埋もれるなと思い、Instagramのapiを使って、アップした写真をランダムに表示するサイトを作ることにし、勉強も兼ねてPythonでサイト構築しよう!Flaskあたり使えば簡単でしょう!とウキウキしながらキーボードに向かいました。
さくらのレンタルサーバ ライトプランの壁
SSHログインして、とか、勝手に考えていたのですが、ライトプランの壁にいきなりぶつかりました。
https://rs.sakura.ad.jp/lite.html
から、
- SSH不可
- MySQL不可(WordPressはMySQL前提なのでこれもできない前提。SQLiteでインストールしている方もいますが、イレギュラーなことは今回行わないことにします)
- SQLiteはOK
- SSI、CGIはOK
手を尽くせばFlaskも動くと思います。しかし、今回はシンプルに、CGIでできる限りのことをする。すなわち、Python3の標準ライブラリでできる範囲のことをすることに決めました。
Instagramからのデータ取得
スクレイピング。。。とかよからぬことを考えましたが、普通にInstagram APIを使います。Instagram APIには
- Graph API
- 基本表示API
の2種類あり、今回はビジネスアカウントおよびMetaによる審査が必要ない基本表示APIを使うことにしました。
要件
- モバイル、PCともに閲覧可能とする。レスポンシブデザインとすること。
- ページの更新ごとに写真がランダムで変わること。
- 1ページのみのサイトとし、24枚の写真を掲載すること(2,3,4の倍数なので、列数が変化してもキリがいい)。
- タイトルと写真以外は極力掲載しないこと。
技術仕様
- HTML Living Standard,CSS3を用いる。対応していないブラウザは考慮しない。
- Instagram 基本表示APIを用いる。
- トップページはSSIを実行し、CGIを起動するだけのページとし、index.shtmlとする。
- CGIはPython3.8を用い、https://docs.python.org/ja/3/ に掲載されているライブラリ+sqlite3以外のライブラリは使わない。
- DBはSQLiteを用いる。
さあ、手を動かそう
とりあえずの仕様が決まったので、まずはInstagramの基本表示APIを使えるようにしましょう。その2:Instagram API に続きます。
目次
その1 仕様
その2 Instagram API
その3 PythonによるCGIの作成
その4 終わりに(全コード)