37. SQLALCHEMY + URL DISPATCH WIKI TUTORIAL
43word = match.group(1)
44exists = DBSession.query(Page).filter_by(name=word).all()
45if exists:
46 |
view_url = request.route_url(’view_page’, pagename=word) |
47return ’<a href="%s">%s</a>’ % (view_url, word)
48else:
49 |
add_url = request.route_url(’add_page’, pagename=word) |
50 |
return ’<a href="%s">%s</a>’ % (add_url, word) |
51
52content = publish_parts(page.data, writer_name=’html’)[’html_body’]
53content = wikiwords.sub(check, content)
54edit_url = request.route_url(’edit_page’, pagename=pagename)
55return dict(page=page, content=content, edit_url=edit_url,
56 |
logged_in=authenticated_userid(request)) |
57
58 @view_config(route_name=’add_page’, renderer=’templates/edit.pt’,
60def add_page(request):
61name = request.matchdict[’pagename’]
62if ’form.submitted’ in request.params:
63body = request.params[’body’]
64page = Page(name, body)
65DBSession.add(page)
66return HTTPFound(location = request.route_url(’view_page’,
68save_url = request.route_url(’add_page’, pagename=name)
69page = Page(’’, ’’)
70return dict(page=page, save_url=save_url,
71 |
logged_in=authenticated_userid(request)) |
72
73 @view_config(route_name=’edit_page’, renderer=’templates/edit.pt’,
75def edit_page(request):
76name = request.matchdict[’pagename’]
77page = DBSession.query(Page).filter_by(name=name).one()
78if ’form.submitted’ in request.params:
79page.data = request.params[’body’]
80DBSession.add(page)
81return HTTPFound(location = request.route_url(’view_page’,
83return dict(
84page=page,
85save_url = request.route_url(’edit_page’, pagename=name),
86logged_in=authenticated_userid(request),
87)
88