PATH_INFO を使ってメソッドを指定して実行(改修後)

http://hogehoge.com/dinamic/aaaaa というURLでアクセスした際に、aaaaa() というメソッドを実行させたい!という場合

urls.py

# -*- coding: utf-8 -*-
from django.conf.urls.defaults import *
urlpatterns = patterns(
    'dinamic.views'
    ,(r'^$', 'index')
    ,(r'^[a-zA-Z0-9]{1,}', 'index')
)

view.py

# -*- coding: utf-8 -*-
from django.http import HttpResponse
# os.environ を利用して PATH_INFO 取得
import os
# funcs.py は views.py と同じディレクトリ内に設置した
# 別にどこにおいてあっても構わない
import funcs

def index(request):
    func_name = getFuncNameStringsByPathInfo()

    if hasattr(funcs, func_name):
        method = getattr(funcs, func_name)
        result = method()
        return result
    else:
        return HttpResponse('メソッドが無いの', mimetype='text/plain')

def getFuncNameStringsByPathInfo():
    if os.environ.has_key('PATH_INFO'):
        if os.environ['PATH_INFO'] != '':
            path_info = os.environ['PATH_INFO'].split('/')
            func_name = path_info[2:3]
            func_name = func_name[0]
            return func_name
    return None

funcs.py

# -*- coding: utf-8 -*-
from django.http import HttpResponse

def aaa():
    return HttpResponse("イェアイェア", mimetype='text/plain')

def abc():
    return HttpResponse("abc", mimetype='text/plain')