Pythonで掲示板を作り公開する方法 その1
無料のレンタルサーバをでPythonで書いた自作の掲示板を設置します。
まずはPythonの使えるレンタルサーバを探しましょう。
僕はwkey.meを使わせていただきました。Python以外にもRuby,Perl,PHPも使えます。(ちなみに現在はメンテナンス中につき新規会員登録はできないようです。予定ではもうじき再開します)
以下の設定等は他のレンタルサーバでは上手くいかない部分があるかも知れません。
wkey.meでは公式のマニュアルを見ればホームページを作るとこまでは簡単にいけます。
まず完成したのがこれです。
ブラウザで戻ると再び書き込んでしまう、リロード時にも書き込んでしまうなどの問題はありますが、最低限の掲示板のふりはしています。removeを押すと全削除になります。
作るまでわかりにくかったとこ、困ったことを書いてきます。
掲示板自体はわりとすぐ作れましたが、CGIとして置くのが初めてなので苦労しました。
というわけで以下の説明はPythonとHTMLの基礎の基礎はわかるけど、CGIとか知らない人が対象です。
分かりにくそうなとこ。
- 最初の設定
WEBサイトの作成時にCGI、Python、SuEXECにチェックします。
FTPユーザも設定してください。サーバにいろいろ送るときはFTPを使います。WkeyではSFTPは使えません。
FTPソフトはFileZillaを使いました。無料です。
- .htaccessの設定
ただPythonのスクリプトをサーバーに置いただけではアクセスしても実行できません。index.htmlのあるディレクトリに.htaccessがあると思います。無かったら作ってください。拡張子.pyを実行したい場合は以下の設定が必要です。
directoryindex index.py AddHandler cgi-script .py AddHandler cgi-script .cgi
directoryindexはindex.htmlの役割をindex.pyに置き換えます。indexもpythonで書きたいなら必要です。
2行目が必要な設定です。3行目は.cgiでも使えるようにしてるだけです。
- パーミッションの設定
置いたpythonファイルは赤の他人が実行するものです。普通は自分だけが実行できるような設定になってるのでそのままではエラーがでます。
他人が実行しそうなファイルはパーミッション755とかに変更します。
- 最低限必要な内容
CGIとして動かすなら以下は入れないとダメです。Hello Worldは必ずしもいらないですけど。
#!/usr/bin/python print "Content-Type: text/plain" print print "Hello World"
htmlなら"Content-Type: text/html"に変更してprintでhtmlを出力
- httpd.confはいじれない
そこの設定はできません。
つまり、公式ドキュメントで推奨されてるwsgiとかmod_pythonとかは使えず、CGIを使わなければならないということです。
無料レンタルサーバでは当たり前だそうです。
話がそれてますが、ちょっと困ったのでメモ
困ったとこ
実際に作って置いたけど505エラーで実行できない。
- 一行目を間違えまくる
wkeyではpythonの場所は/usr/bin/pythonです。
#!/usr/bin/pythonを#!usr/bin/pythonとしてしまいエラーが解消できずに困りました。
#!/usr/bin/pyhtonでエラーがでたこともありました。ナチュラルすぎてわかりません。
- なにが原因なのか分からない
結構重要なのがエラー対策です。エラーがどれも505 internal server Errorなので何が原因かわかりません。頑張って探しても、ただただ時間が過ぎていきます。
これの対策としては、とりあえず#!/usr/bin/pythonの後に
import cgitb; cgitb.enable()
を加えときます。これでエラーが表示できることが多いです。
いやそれ加えてもエラー出るんだが・・・って人は
import sys print "Content-Type: text/plain \n" print "honyarara" sys.exit()
とかをいろんな場所に入れて頑張ってみてください。
いやそれでも505が出るんだが・・・って人は一行目が違ったり、.htaccess、パーミッションの設定がおかしい人です。
ここまでくれば原因を特定しやすいはずです。
長くなってきたので、掲示板そのものの話はその2へ。
漫画で漫画制作の話をされるのが嫌い
漫画では漫画を描いてるキャラクターが不自然なくらいよく出てきます。
それがなんとなく嫌だという話です。
同様に小説で小説作りの話をされるのも嫌です。ドラマでドラマ制作現場の話は嫌です。
当然漫画家は漫画を、小説家は小説を熟知しているのでそういった登場人物が出てくるのは仕方ないのかもしれません。それに嫌いって言っても面白ければ全然問題ないです。面白い話はたくさんあります。
でも面白くなかった場合、内輪ネタを見せられてる気がしてムッとしてしまうのです。内輪ネタと感じた時点で面白さ30%減です。
だって大多数の読者って漫画作ったことないし、作ろうとも思ってないじゃないですか。それなのに漫画制作現場の話が長々と続くとうんざりしてきます。Gペンがどうとか正直興味ないです。そういう意味では、はじめから漫画制作がテーマの漫画ならいいと思います。たぶんその漫画を読むのは漫画作りに興味ある人達ですから。問題なのは突然漫画作りの話を挟んでくる漫画です。
たぶん作り手の方々には面白い話なんだと思います。でも普通の読者が面白いと思うものからはかなりずれてる気がします。そのずれを認識しにくい分、安易に漫画で漫画の話みたいなことをやるのって危険だと思うのです。漫画家はその道プロフェッショナルですからね。大学教授の講義みたいなもんです。自分が学生に対しどれだけ分かりにくい説明をしてるのか理解できてません。専門外の先生のほうが普通の言葉を使うから、分かりやすかったりするじゃないですか。
逆に漫画で小説を書く話とか、他のものを作る話だと、そこはかとなく知性を感じます。
単に新鮮なだけかもしれませんが、それだけでちょっと面白そうな感じがします。安心します。ああ、この人は漫画しか考えられない訳じゃないんだって。
少し話はそれますが、単行本の付録にネームがついてきたりしますけど、あれどれだけ需要あるんだろう?って思います。僕はちょっとだけ漫画作りをかじったことがあるのでネームとかは楽しめるんですけど、あんなのほとんどの人要らないですよね。
そうだ! 秘密結社をつくろう!!
秘密結社とは、結社の存在そのものが構成員により秘匿される、又は、結社の存在は公になっていても、その構成員であることが、組織や構成員自身の許諾によらないで、第三者等により公開されることが禁じられている組織、あるいは、結社の活動目的や活動内容を構成員以外の第三者等に公開することが禁じられている組織で、政府など公の機関でないものをいう。
http://ja.wikipedia.org/wiki/秘密結社
書類の提出とかないので普通に会社をつくるよりハードルは低いです。
勝手に作って勝手に存在してることにすればいいのですから。
宣伝する必要なんかありません。知名度がないのは秘密結社だからです。
こんなのもあるそうです。
ヒミツク - 秘密結社コミュニティー
「秘密結社 作り方」で調べてたら見つけました。世の中にはいろんなことを思いつく人がいますね。
実際につくってみた
- 社名 バグバグテクノロジー
- 目的 秘密裏に世界中ありとあらゆるプログラムにバグを埋め込む
我が組織は設立してからまだ日が浅いですがその活動領域は凄まじく、最近発生するプログラムのバグはだいたい我々のせいです。
あなたの周りでバグを出しているあの人は、もしかしたらバグバグテクノロジーの構成員かもしれません。
書いたコードのバグ含有率が大きいほど我が組織における地位も上がります。
一見無能なあの人は実は我が組織における地位向上に励んでいるだけなのかもしれませんよ。
エラーの原因見つけられなくて疲れてるんです。
かんたん! スライド小説を作ろう!!
PowerPointなどのプレゼンテーション用のソフトウェアで小説をつくることを提唱します。
なにかというと漫画と小説の中間に位置するようなコンテンツが欲しい見たいってことが言いたいのです。近いのはサウンドノベルや動画上での小説とかですかね。違うのはスライドで作る小説は簡単で音楽が必須ではないことです。
誰にでもつくれる
パワポとかなら誰でも作れます。漫画は絵を描く能力が必須です。小説は小説で文量多くて大変です。
一方スライドでは文章での描写が面倒だったら適当に画像を貼ればいいので楽です。漫画のようにひたすら絵を描きまくる必要もありません。
絵が好きなら紙芝居のようにする、文章が好きなら基本を文字にするという選択肢の余地があります。
読むのが楽
もともとプレゼン用なので一枚あたりの文字数が少ないです。
そこまで意識しなくても見やすく読みやく作れます。
特殊なソフトが必要ない
オフィス系ソフトは多くの人が使用しています。
またブログ等にも簡単に貼り付けられるので公開も容易です。
本当はそういったコンテンツ用のソフトでも作ろうかとおもったのですが、考えてみたらパワポでよくね? ってなったのでこんなこと言ってます。
というわけでサンプルをつくりました。
2ギャルゲー風にも作れる!
ハイパーリンクをつかえば任意のスライドに飛べます。ただアニメーションとかリンクとかを残した状態で公開するのってかなり面倒くさそうです。下のslideshareのはそのへんの効果が消えちゃってます。
そして本当にゲームを作ろうとすると色々問題あります・・・
pdf化前のファイル
https://dl.dropboxusercontent.com/u/216786379/SHURABA.pptx
【Python】 文字列を同一文字が切れたところで区切ってリストに入れる
s = "aabbbccddef" li = [] start = 0 for i in range(len(s)-1): if s[i] != s[i+1]: end = i + 1 li.append(s[start:end]) start = end li.append(s[start:]) print li
実行結果
['aa', 'bbb', 'cc', 'dd', 'e', 'f']
ゴーヤを食べたらビールが飲めるようになった話
僕はビールが飲めませんでした。
なにが嬉しくて飲んでいるのだろうと思ってました。
ところで、ちょっと前に興味本位でゴーヤを食べました。驚きました。
僕が知っているまずい食べ物は、まずいといっても所詮は食品の粋を出ていませんでした。
なんだかんだ空腹であれば食べれるレベルでした。
しかし、ゴーヤからは悪意しか感じませんでした。
奴はあきらかに食べられるためではなく苦しめるために存在しています。
なぜスーパーで普通に売ってるのか分かりません。
なぜあんなものに需要があるのか分かりません。
一般人には敷居が高すぎます。
子供が嫌いな野菜ってあります。
ピーマンを筆頭に、セロリ、にんにく。トマトやナスなどもあげられます。
その中にゴーヤが入ってることもあるのですが、その分類の仕方はおかしいです。
子供が嫌い? 人間が嫌いな野菜の間違いでしょう。
もしかしたら何の下ごしらえもせずに適当に炒めただけなのがいけなかったのかもしれません。
噛めませんでした。飲み込めませんでした。
でも無駄に高かったので気合で食べました。
なんとか奴に勝利することができました。
二度と食べるかと思いました。
で、昨日付き合いでビールを飲みました。
余裕でした。ひよっ子でした。
もはや、あの苦しみを経験した僕の敵ではなかったです。
憎しみしかなかったゴーヤ先輩が少しだけいい奴に思えました。