2015-07-28 3 views
3

Я начал использовать веб-приложения для создания Django, и теперь я в зависимости от Flask для большинства своих проектов. Я думаю, что декоратор @app.route в Flask прост, но как только файл становится все больше и больше, картинка url «django style» кажется более благоприятной.Django-стиль флеш-шаблона для большого приложения

Для этого я использовал работу, чтобы имитировать отображение URL-адресов Django, но я не уверен, что это хорошая практика и беспокоит, что может быть проблема с производительностью.

Вот минимальный пример:

# project/views.py 
def index(): 
    print "hello index!" 

def get_users(): 
    print "hello users!" 

# project/urls.py 
from project import views 

# store url mapping arguments in a list of tuples following this pattern: 
# (endpoint, methods, viewfunc) 

urls = [ 
    ('/', ['GET'], views.index), 
    ('/users', ['GET'], views.get_users) 
] 

Тогда, наконец:

# project/__init__.py 
from flask import Flask 
from project.urls import urls 

app = Flask(__name__) 
# Loop through the urls list to add all url rules to app 
for url in urls: 
    app.add_url_rule(url[0], methods=url[1], view_func=url[2]) 

Эта структура работает без проблем, и я вижу более чистую организацию моего кода базы, но почему-то я чувствую себя неуверенным, имеющими a loop внутри моего __init__.py.

У кого-нибудь есть лучшее решение?

ответ

1

Вы можете set up an application factory:

def create_app(name): 
    app = Flask(name) 
    for url in urls: 
     app.add_url_rule(url[0], methods=url[1], view_func=url[2]) 
    return app 

app = create_app(__name__) 

 Смежные вопросы

  • Нет связанных вопросов^_^