Last active
December 18, 2015 12:09
-
-
Save maowug/5781182 to your computer and use it in GitHub Desktop.
Test traversal. Note "@view_config" and leave "name='' " to default view.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
#encoding: utf-8 | |
#__author__ = 'actor2019' | |
# $http.get('/ja/word/あい') | |
from pyramid.security import ( | |
Allow, | |
Everyone, | |
) | |
def _assign(obj, name, parent): | |
obj.__name__ = name | |
obj.__parent__ = parent | |
return obj | |
class Root(object): | |
__name__ = None | |
__parent__ = None | |
# __acl__ = [ (Allow, Everyone, 'view')] | |
def __init__(self, request): | |
self.request = request | |
def __getitem__(self, name): | |
if name == 'ja': | |
return _assign(Ja(self.request),name,self) | |
raise KeyError | |
# --------------- ja --------------- | |
class Ja(object): | |
def __init__(self, request): | |
self.request = request | |
def __getitem__(self, name): | |
if name == 'word': | |
return _assign(JaWord(self.request),name,self) | |
raise KeyError | |
# JaWord works as JaEntryDispatcher | |
class JaWord(object): | |
def __init__(self, request): | |
self.request = request | |
def __getitem__(self, title): | |
jp=self.request.db.jp | |
entries=list(jp.find({'title':title})) | |
if entries: | |
entries=JaEntry(entries) | |
return _assign(entries,title,self) | |
# raise KeyError | |
raise KeyError | |
class JaEntry(object): | |
def __init__(self, entries): | |
self.entries = entries | |
#- ---------- #- ---------- #- ---------- in view | |
@view_config(context=JaEntry, renderer='json') | |
def ja_entry_view(request): | |
return request.context.entries | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment