みなさま、こんにちは。おくむら(@nori_broccoli)です。
ドラクエウォークやUnihertzのネタの多いブログですが、たまには技術系の初歩の初歩みたいな話でもしてみましょう。
Webサイトをデザインしましょうという科目を担当していて、やっていることはというと、ビルダーを使わずに自分でHTMLやCSSを書いてWebサイトを作成する、というようなことです。今のご時世、便利なアプリはたくさんあるのですが、あえてHTMLやCSSを自分で書くことで、様々な設定を細かく理解していきましょうというような趣旨です。
こういう授業を受け持っていると、CGI周りのトレーニングをするときに、サーバサイドのスクリプトも自分で書いてもらった方が良いよなぁと思ったりしていたわけですが、今更Perlを書くのもどうかと思うし、どうせなら今後のプログラミング学習につながるのであればとPythonでのCGIの実装についていろいろ調べてみていました。
そうすると、想像以上に簡単にできるということが分かって、しかもApacheとか設定しなくても、ローカルでHTTPサーバとしてPythonを駆動させてCGIのレスポンスも取得できると、これなら各自のローカルで閉じた環境で実習できるなと嬉しくなっているところです。Pythonの環境をどのように学生のコンピュータに構築するか……が問題ですが、面倒なのでAnacondaを突っ込んで対処するか、という感じです。
もちろんAnacondaが余計なものをたくさん入れるし、condaとpipを混在させるとめんどくさいし、色んな問題もあるのですが、インストールしたらデフォルトのままで簡単なCGIなら動くので、これで良いかなという感じです。文系の学生さんですし、余計な「追加インストール」を必要とする環境よりは良いです。ゆくゆくはプログラミングを学ぶとしても、その時であってもAnacondaが入っていれば基本的に問題ないですし。
しかしまぁ、本当にPythonっていろいろできるんだなぁと感心しています。
python –m http.server port --cgi
こんなことをやるだけでApacheなくても仮想的にHTTPサーバとして動いてくれますし、ちゃんとCGIのレスポンスが戻ってきます。
問題は、Pythonのスクリプトをどこまでマジメに教えるか……です。あくまでHTMLとCSSの技術を磨こうという科目なので、Pythonまで混じってくるとややこしいんですよね。かといって、何も説明せずにこれ使いましょう……も違う気がして、せっかくならPythonにも興味を持って欲しいし、とても悩ましいところです。時間がもう少し取れるなら本格的に……とも思いますけども。
何にせよ、Pythonで簡単にCGIを実装できることが分かったので、授業に上手く導入していけるように検討してみます。こういうことが出来ると面白いよ!という裏ワザを知ってる方がいらっしゃれば是非ご教示下さい!