này là rất cụ thể với những gì tôi đang cố gắng để làm như vậy tôi bắt đầu mô tả những gì nó là:sử dụng chuỗi truy vấn trong cấu hình tuyến đường Python Pyramid
- một ứng dụng Pyramid lô phục vụ như http://localhost:6543/path/to/myplot/plot001.png
- nếu cốt truyện là không có sẵn một hình ảnh khác (work.png)
- một phần khác là chế độ xem biến dạng cung cấp biểu mẫu HTML để nhập cấu hình cho ô như: http://localhost:6543/path/to/myplot/plot001.png?action=edit. Lưu ý ở đây chuỗi truy vấn "action = edit".
- cấu hình bao gồm datafile, mẫu, v.v.
- biểu mẫu đã lưu (để lưu cấu hình) và nút hiển thị (http: // localhost: 6543/path/to/myplot/plot001.png? Action = render). Hiển thị kết quả thành tệp png sau đó được sử dụng theo cách tĩnh.
tôi đã tìm ra tất cả các mảnh như render sử dụng Matplotlib vv nhưng tôi mới để Pyramid và biến dạng. Tôi cũng có một cái nhìn làm việc phục vụ cốt truyện từ tập tin. Dạng biến dạng cũng hoạt động. Tại thời điểm này không rõ ràng với tôi như thế nào để cấu trúc tốt nhất các ULR để phân biệt phục vụ, chỉnh sửa và render usecases. Tôi đoán trong Pyramid nói chuyện này có nghĩa là làm thế nào để cấu hình các tuyến đường cho serve_view và 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):
...
Tôi hướng dẫn sử dụng kim tự tháp Tôi không thể tìm thấy tham chiếu cách đặt thông số trong tuyến đường. Tôi đoán một con trỏ đến một số tài liệu hoặc mẫu sẽ là đủ và tôi có thể tìm ra các chi tiết bản thân mình. Cảm ơn bạn!
Pyramid có một cơ chế mà họ gọi Multidict. Tôi nghĩ rằng đây là cách để truy cập chuỗi truy vấn. Tôi sẽ hợp nhất hai khung nhìn và chỉnh sửa thành một và tạo sự khác biệt bằng cách sử dụng một cái gì đó như sau: nếu 'chỉnh sửa' theo yêu cầu.GET.getall ('action'): # chỉnh sửa cấu hình – mark
Những gì bạn nói trong ở trên bình luận là tốt và nó có lẽ là cách tôi sẽ làm điều đó; bạn có thể luân phiên thêm một biến vị ngữ tùy chỉnh vào câu lệnh add_route, nó sẽ phân biệt hai tuyến trên chuỗi truy vấn cho các mục đích phù hợp. Xem http://docs.pylonsproject.org/projects/pyramid/1.1/narr/urldispatch.html#custom-route-predicates –