ten jest bardzo specyficzny, co staram się robić tak zacznę opisując, co to jest:użyciu ciąg kwerendy w konfiguracji trasy Python Pyramid
- aplikację Pyramid obsługujących Działki jak http://localhost:6543/path/to/myplot/plot001.png
- jeśli fabuła jest niedostępny inny obraz jest obsługiwany (work.png)
- kolejną częścią jest widok deformacji, który dostarcza formularz HTML, aby wprowadzić konfigurację dla działki, takiej jak: http://localhost:6543/path/to/myplot/plot001.png?action=edit. Zauważ tutaj ciąg zapytania "action = edit".
- konfiguracja składa się z pliku danych, szablonów itp.
- w formularzu są zapisane (aby zapisać konfigurację) i przyciski renderowania (http: // localhost: 6543/path/to/myplot/plot001.png? Action = render). Renderowanie wyników do pliku png, który następnie jest używany w sposób statyczny.
Wymyśliłem wszystkie elementy, jak renderowanie za pomocą Matplotlib itp., Ale jestem nowy w Pyramid i Deform. Mam również widok roboczy, który obsługuje wątek z pliku. Również forma deformacji formy. W tej chwili nie jest dla mnie jasne, jak najlepiej zaprojektować ULR, aby odróżnić serwery obsługi, edycji i renderowania. Wydaje mi się, że w Pyramid talk oznacza to, jak skonfigurować trasy dla serve_view i edit_view.
__init__.py:
config.add_route('serve_route',
'/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
config.add_route('edit_route',
'/{project_name}/testruns/{testrun_name}/plots/{plot_name}.png')
# can I use query strings like "?action=edit" here to distinguish the difference?
views.py:
@view_config(context=Root, route_name='serve_route')
def plot_view(context, request):
...
@view_config(context=Root, renderer='bunseki:templates/form.pt', route_name='edit_route')
def edit_view(request):
...
I Podręcznik piramidy Nie można znaleźć odniesienia do ustawiania parametrów na trasie. Myślę, że wskazówka na jakąś dokumentację lub próbkę byłaby wystarczająca i sam mógłbym określić szczegóły. Dziękuję Ci!
Piramida posiada mechanizm nazywają Multidict. Myślę, że jest to sposób na uzyskanie dostępu do ciągu zapytania. Scalę dwa widoki i edytuję je w jedno i rozróżniam je przy użyciu czegoś takiego: jeśli "edytuj" w request.GET.getall ("akcja"): # edytuj konfigurację – mark
Co mówisz w powyższy komentarz jest w porządku i prawdopodobnie tak bym to zrobił; można na przemian dodać niestandardowy predykat do instrukcji add_route, która będzie dezambagować dwie trasy ciągu zapytania w celu dopasowania. Zobacz http://docs.pylonsproject.org/projects/pyramid/1.1/narr/urldispatch.html#custom-route-predicates –