0
我剛開始金字塔,並加載視圖時出現問題。我想加載一個基於從數據庫中提取的變量的視圖,就像我的PHP解決方案一樣:rewrite url with htaccessPython金字塔:基於數據庫變量加載視圖
我已經構建了一個可以執行此操作的腳本,但我確信這不是正確的方法它。我想當我在一個真實的網站上使用它時,它會變得非常複雜和混亂。有人可以解釋如何正確或指向我的其他解決方案?
我當前的腳本:
config.add_route('home', '/')
config.add_route('admin_home', '/admin')
config.add_route('admin_pages', '/admin/pages')
config.add_static_view(name='static', path='website:static')
config.add_route('view_loader', '/*url')
views.py
class ViewLoader(object):
def __init__(self, request):
self.request = request
@view_config(route_name="view_loader", renderer="templates/view_loader.pt")
def view_loader(self):
request = self.request
url = "/%s" % request.matchdict["url"]
page = DBSession.query(Pages).filter_by(url=url).one()
return dict(title=page.title, include=page.template)
view_loader.pt
<!DOCTYPE html>
<html>
<body>
<metal:main use-macro="load: ${include}"></metal:main>
</body>
</html>
系統的理念:
管理員可以創建一個頁面cms隨機網址是d必須選擇一個模板。系統必須生成這些頁面。
- URL = /隨機/隨機 - >尋找在DB模板 - >渲染template_1
- URL =/random2/random2 - >尋找在DB模板 - >渲染template_2
所以我想在調用類/方法之後渲染模板以確定要渲染的模板
代替返回的dict()你可以做一些像'return HTTPFound(request.route_url(page.route_name))'? –
感謝您的迴應,但如果我理解正確,網址將會改變,那不是我的意思。我會盡力澄清我的問題。 – Jab
您可以隨時從您的視圖中調用另一種方法; '如果sometest:return otherview(request)'。 –