了解并实施金字塔中的路由和数据库访问

2024-05-28 21:13:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出访问数据库中Assessment类(表)中所有匹配的microseries的最佳方法。我试图创建一个链接,将用户发送到那些匹配的microseries。我是新来的,想更好地了解前端工程的螺母和螺栓。我也没有看到类似的问题问这里的堆栈

我还没有使用JSON或XML,所以这是一个静态的HTML过程。我目前有一些途径可以访问评估,例如:

config.add_route('assessments', '/assessments')
config.add_route('assessment', '/assessments/{id:\d+}')

在实现在Assessment表中查找匹配的microseries并将用户发送到具有这些匹配序列的新页面的方法时,我希望更好地理解的是: routes是如何工作的,尤其是在访问类的属性时,例如Assessment.microseries

View代码的目标是传达上述方法。 Pyramid linksPyramid on RoutesURL Dispatch

使用:Python2.7、SQLAlchemy、Pyramid


评估表:

class Assessment(Base):
    __tablename__ = 'assessments'

    id = Column(Integer, primary_key=True)
    name = Column(String(50), unique=True)
    text = Column(String(2000))
    microseries = Column(Integer)
    # more code

    def __init__(self, name, text, user, video, categories, microseries):
            # more code

与评估交互的API基于CRUD—创建、检索、更新和删除

视图代码: 这并不是我需要它做的,因为我没有一种形式的链接将用户发送到匹配的序列,例如,Link1会将用户发送到一个新视图,该视图包含了Link1的所有子序列GET:1a、1b、1c….

@view_config(route_name='assessments', request_method='GET', renderer='templates/unique_assessments.jinja2', permission='create')
def view_unique_microseries_group(request):
    logged_in_userid  = authenticated_userid(request)
    if logged_in_userid is None:
        raise HTTPForbidden()
    all_assessments = api.retrieve_assessments() #all assessments in a list
    assessments_by_microseries = {} #dictonary
    for x in all_assessments:
        if x.microseries in assessments_by_microseries:
            print("Already seen this microseries: %s" % x.microseries)
        else:
            assessments_by_microseries[x.microseries] = x
    unique_assessments = sorted(assessments_by_microseries.values()) #.values() method to get the, err, values of the dict.
    print 'unique_assessments:', unique_assessments
    #a = HTTPSeeOther(location=request.route_url('view_microseries'))
    return {'logged_in': logged_in_userid, 'unique_assessments': unique_assessments} #need to send some kind of list that can be shown on the template to send a user to the appropriately matching set of microseries 

Tags: theto方法用户inbyrequestcolumn

热门问题