webappをベースに携帯電話用のウェブサイト構築のフレームワークを作成中。
ハンドラの定義を簡略化させたいので、
app.yamlか、メインとなるハンドラを自動生成させる仕組みを構想中。
こんな感じの構成で、
/framework/__init__.py
/sites/admin/__init__.py
/sites/admin/main.py
/sites/__init__.py
/sites/index.py
/sites/login.py
/app.yaml
/mainhandler.py
案1:app.yamlをこんな感じで自動生成させる。
------------------
- url: /index\.html
script: sites/index.py
- url: /login\.html
script: sites/login.py
・・・以下同様に続く。
------------------
案2:mainhandler.pyをこんな感じで自動生成させる。
------------------
import sites
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
application = webapp.WSGIApplication(
[('/index.html', sites.index.Html),('/login.html', sites.login.Html),・・・以下同様に続く], debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
------------------
案1は、(importの範囲を絞れるので)たぶん起動速度が速い。
その代償にapp.yamlをいじり辛くなってしまうので、
フォルダごとに管理者ユーザのみのアクセスを設定したりするのは難しい。
案1と案2の折衷案がよさそうな気もする・・・
まずは案1と案2のパフォーマンスの差を調べよう。