Flask/Werkzeug имеет феноменального WSGI URL-адрес диспетчера, который не REGEX на основе. Например, в Настой:.
@myapp.route('/products/<category>/<item>')
def product_page(category, item):
pseudo_sql = select details from category where product_name = item;
return render_template('product_page.html',\
product_details = formatted_db_output)
Это заставляет вас, что можно было бы ожидать, т.е. http://example.com/products/gucci/handbag; это действительно хороший API. Если вы просто хотите литералов это так просто, как:
@myapp.route('/blog/searchtool')
def search_interface():
return some_prestored_string
Update: Вопрос Per Мухаммада здесь является совместимым приложением минимальной WSGI с помощью 2 без регулярных выражений утилиты из Werkzeug - это просто принимает URL, если все путь только «/» вы получите приветственное сообщение, в противном случае вы получите URL назад:
from werkzeug.routing import Map, Rule
url_map = Map([
Rule('/', endpoint='index'),
Rule('/<everything_else>/', endpoint='xedni'),
])
def application(environ, start_response):
urls = url_map.bind_to_environ(environ)
endpoint, args = urls.match()
start_response('200 OK', [('Content-Type', 'text/plain')])
if endpoint == 'index':
return 'welcome to reverse-a-path'
else:
backwards = environ['PATH_INFO'][::-1]
return backwards
можно развернуть, что с Tornado, mod_wsgi и т.д. конечно, это трудно превзойти славные идиомы Настой и Бутылка, или тщательность и качество Werkzeug за пределами Map
и Rule
.
Это диспетчер wsgi в том смысле, что он передает HTTP-запросы в приложение wsgi? Или это то же самое, что «бутылка» в моем ответе, ожидает функции, которые работают с конкретной структурой? –
См. Вторую ссылку, раздел быстрого запуска. Но да, вы могли бы использовать маршрутизацию Werkzeug только для чистой отправки wsgi, вы вызываете метод 'bind_to_environ' на объекте« Карта »с параметром wsgi environ запроса в качестве параметра в вашем приложении, и вы не работали - вы можете имеют приложение, совместимое с wsgi, с помощью только 'Map' и' Rule' в 6 строках кода. Материал Flask - всего лишь хороший набор утилит для работы с этими же объектами более прозрачным способом. – unmounted