当前位置: 首页>>代码示例>>Python>>正文


Python Session.query方法代码示例

本文整理汇总了Python中pacemaker.model.meta.Session.query方法的典型用法代码示例。如果您正苦于以下问题:Python Session.query方法的具体用法?Python Session.query怎么用?Python Session.query使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pacemaker.model.meta.Session的用法示例。


在下文中一共展示了Session.query方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def index(self, id):

        component = get_object_or_404(Component, id)
        c.product_name = component.project.product.name
        c.project_id = component.project_id
        c.project_name = component.project.name
        c.product_id = component.project.product_id
        c.component_name = component.name
        c.component_id = id

        stmt = Session.query(Binary.source_id, 
                             func.count('*').label('bin_count')).\
                group_by(Binary.source_id).subquery()

        c.sources = []
        # SELECT source.*,bin_count FROM source LEFT JOIN (subquery)...
        for source, count in Session.query(Source, stmt.c.bin_count).\
                       outerjoin((stmt, Source.id==stmt.c.source_id)).\
                       filter(Source.component_id == component.id).\
                       order_by(Source.name):
            if not count:
                count = 0
            c.sources.append({'name': source.name,
                              'id': source.id,
                              'bin_count': count})

        return render('/packages/component_overview.mako')
开发者ID:rojkov,项目名称:pacemaker,代码行数:29,代码来源:component.py

示例2: index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def index(self, id):
        """Shows overview for product
        """

        log.debug("ProductController.index action invoked")
        product = get_object_or_404(Product, id)
        c.product_id = product.id
        c.product_name = product.name

        stmt = Session.query(Component.project_id, 
                             func.count('*').label('comp_count')).\
                group_by(Component.project_id).subquery()

        c.projects = []
        # SELECT project.*,comp_count FROM project LEFT JOIN (subquery)...
        for project, count in Session.query(Project, stmt.c.comp_count).\
                       outerjoin((stmt, Project.id==stmt.c.project_id)).\
                       filter(Project.product_id == product.id).\
                       order_by(Project.name):
            if not count:
                count = 0
            c.projects.append({'name': project.name,
                               'id': project.id,
                               'comp_count': count})

        return render('/packages/product_overview.mako')
开发者ID:rojkov,项目名称:pacemaker,代码行数:28,代码来源:product.py

示例3: index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def index(self, id):

        project = get_object_or_404(Project, id)
        c.product_name = project.product.name
        c.project_id = id
        c.project_name = project.name
        c.product_id = project.product_id

        stmt = Session.query(Source.component_id, 
                             func.count('*').label('src_count')).\
                group_by(Source.component_id).subquery()

        c.components = []
        # SELECT component.*,src_count FROM component LEFT JOIN (subquery)...
        for component, count in Session.query(Component, stmt.c.src_count).\
                       outerjoin((stmt, Component.id==stmt.c.component_id)).\
                       filter(Component.project_id == project.id).\
                       order_by(Component.name):
            if not count:
                count = 0
            c.components.append({'name': component.name,
                                 'id': component.id,
                                 'src_count': count})

        return render('/packages/project_overview.mako')
开发者ID:rojkov,项目名称:pacemaker,代码行数:27,代码来源:project.py

示例4: test_index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_index(self):

        # look up for object ID
        project = Session.query(Project).first()
        response = self.app.get(url(controller='packages/project',
                                        action='index',
                                        id=project.id))
开发者ID:rojkov,项目名称:pacemaker,代码行数:9,代码来源:test_packages_project.py

示例5: test_index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_index(self):

        # look up for object ID
        component = Session.query(Component).first()
        response = self.app.get(url(controller='packages/component',
                                        action='index',
                                        id=component.id))
开发者ID:rojkov,项目名称:pacemaker,代码行数:9,代码来源:test_packages_component.py

示例6: test_index

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_index(self):
        """ Test ProductController.index action
        """

        # look up for object ID
        product = Session.query(Product).first()
        response = self.app.get(url(controller='packages/product',
                                        action='index',
                                        id=product.id))
        # Test response...
        assert response.status == 200, "Wrong response code"

        # get 404 if no ID provided
        response = self.app.get(url(controller='packages/product',
                                        action='index',
                                        id=""),
                               status=404)
        # Test response...
        assert response.status == 404, "Wrong response code"

        # get 404 if malformed ID provided
        response = self.app.get(url(controller='packages/product',
                                        action='index',
                                        id="bla-bla..."),
                               status=404)
        # Test response...
        assert response.status == 404, "Wrong response code"

        # get 404 if provided ID doesn't exist
        response = self.app.get(url(controller='packages/product',
                                        action='index',
                                        id=30000),
                               status=404)
        # Test response...
        assert response.status == 404, "Wrong response code"
开发者ID:rojkov,项目名称:pacemaker,代码行数:37,代码来源:test_packages_product.py

示例7: delete

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def delete(self, id):
        """Deletes a selected project.
        """
        #TODO: check permisssions

        project = get_object_or_404(Project, id)

        comp_count = Session.query(Component).filter_by(project_id = id).count()
        if comp_count > 0:
            h.flash("Can't delete the project %s as it still \
                     contains components." % project.name)
            return redirect_to(controller='packages/product',
                               action='index',
                               id=project.product_id)

        name = project.name
        Session.begin()
        Session.delete(project)
        Session.commit()
        h.flash("The project <b>%s</b> has been deleted successfully" % \
                name)

        return redirect_to(controller='packages/product',
                           action='index',
                           id=project.product_id)
开发者ID:rojkov,项目名称:pacemaker,代码行数:27,代码来源:project.py

示例8: walktree

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def walktree(self, depth = 0, root = 'source'):
        """Recursion function to walk over the acrhitectural tree"""

        # our hierachy
        chain = ('product', 'project', 'component', 'source', 'binary')
        # plural forms
        chains = ('products', 'projects', 'components', 'sources', 'binaries', 
                  'stop')
        # agregation hierachy
        chainclass = (Product, Project, Component, Source, Binary)
        response = self.app.get(url(controller = 'packages/architecture',
                                        action = 'get_architecture_nodes'),
                                params = {'root': root})
        nodes = simplejson.loads(response.body)
        assert len(nodes) == 3, "AJAX returned wrong number of nodes"
        for node in nodes:
            assert node['classes'] == chain[depth] + 'item', \
                    "Wrong class of item"
            itemtype, id = node['id'].split('_')
            assert itemtype == chain[depth], \
                    "Wrong type of item"
            db_node = Session.query(chainclass[depth]).filter_by(id = id).one()
            if chains[depth + 1] != 'stop':
                subnodes = getattr(db_node, chains[depth + 1])
                if len(subnodes) > 0:
                    assert node['hasChildren'], "Wring hasChildren attribute"
                    self.walktree(depth + 1, node['id'])
                else:
                     assert not node['hasChildren'], \
                             "Wring hasChildren attribute"
            else:
                assert not node['hasChildren'], \
                        "Leaf node must not have children"
开发者ID:rojkov,项目名称:pacemaker,代码行数:35,代码来源:test_packages_architecture.py

示例9: test_delete

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_delete(self):
        """ Test ProductController.delete action
        """

        product = Session.query(Product).\
                filter_by(name='product_to_delete').first()
        product_id = product.id
        response = self.app.post(url(controller='packages/product',
                                         action='delete',
                                         id=product_id))
        # Test response...
        assert response.status == 302, "Wrong response code"
        print "Location: ", response.header_dict['location']
        print "Expected location: ", url(controller='packages/packages', host='localhost'), \
                    "Wrong response location"
        assert response.header_dict['location'] == \
                url(controller='packages/packages', host='localhost'), \
                    "Wrong response location"
        # reset sqlalchemy cache
        Session.begin()
        Session.commit()
        count = Session.query(Product).\
                filter_by(name='product_to_delete').count()
        assert count == 0, "Product hasn't been deleted"

        # Try to delete product which has children
        product = Session.query(Product).\
                filter_by(name='product1').first()
        product_id = product.id
        response = self.app.post(url(controller='packages/product',
                                         action='delete',
                                         id=product_id))
        # Test response...
        assert response.status == 302, "Wrong response code"
        assert response.header_dict['location'] == \
                url(controller='packages/product',
                        host='localhost',
                        id=product_id), \
                    "Wrong response location"
        # reset sqlalchemy cache
        Session.begin()
        Session.commit()
        count = Session.query(Product).\
                filter_by(name='product1').count()
        assert count == 1, "Product has been deleted"
开发者ID:rojkov,项目名称:pacemaker,代码行数:47,代码来源:test_packages_product.py

示例10: test_add_project

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_add_project(self):
        """ Test ProductController.add_project action
        """

        product = Session.query(Product).filter_by(name='product1').first()
        response = self.app.get(url(controller='packages/product',
                                        action='add_project',
                                        id=product.id))
        # Test response...
        assert response.status == 200, "Wrong response code"
开发者ID:rojkov,项目名称:pacemaker,代码行数:12,代码来源:test_packages_product.py

示例11: test_edit

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_edit(self):
        """ Test ProductController.edit action
        """

        # look up for object ID
        product = Session.query(Product).first()
        response = self.app.get(url(controller='packages/product',
                                        action='edit',
                                        id=product.id))
        # Test response...
        assert response.status == 200, "Wrong response code"
开发者ID:rojkov,项目名称:pacemaker,代码行数:13,代码来源:test_packages_product.py

示例12: test_submit_project

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def test_submit_project(self):
        """ Test ProductController.submit_project action
        """

        product = Session.query(Product).filter_by(name='product1').first()
        product_id = product.id
        response = self.app.post(url(controller='packages/product',
                                         action='submit_project',
                                         id=product_id),
                                 params={
                                    'name': 'project333'
                                 })
        # Test response...
        assert response.status == 302, "Wrong response code"
        assert response.header_dict['location'] == \
                url(host='localhost',
                        controller='packages/product',
                        action='index',
                        id=product_id), "Wrong response location"

        project = Session.query(Project).filter_by(name='project333').first()
        assert project.product_id == product_id, \
                                 "New project assigned to wrong product"
开发者ID:rojkov,项目名称:pacemaker,代码行数:25,代码来源:test_packages_product.py

示例13: test_submit_edit

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
 def test_submit_edit(self):
     """ Test ProductController.submit_edit action
     """
     product = Session.query(Product).\
             filter_by(name='product_to_edit').first()
     product_id = product.id
     response = self.app.post(url(controller='packages/product',
                                      action='submit_edit',
                                      id=product_id),
                              params={
                                 'name': 'product_new_name'
                              })
     # Test response...
     assert response.status == 302, "Wrong response code"
     assert response.header_dict['location'] == \
             url(controller='packages/product',
                     host='localhost',
                     id=product_id), \
                 "Wrong response location"
     # reset sqlalchemy cache
     Session.begin()
     Session.commit()
     product_n = Session.query(Product).filter_by(id=product_id).first()
     assert product_n.name == 'product_new_name', "Wrong product name"
开发者ID:rojkov,项目名称:pacemaker,代码行数:26,代码来源:test_packages_product.py

示例14: get_object_or_404

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
def get_object_or_404(class_, id):
    """Gets model object from DB if available or shows 404 page.
    """

    if not id:
        abort(404)

    try:
        id = int(id)
    except ValueError:
        abort(404)

    object = Session.query(class_).filter_by(id = id).first()
    if object is None:
        abort(404)
    return object
开发者ID:rojkov,项目名称:pacemaker,代码行数:18,代码来源:base.py

示例15: run

# 需要导入模块: from pacemaker.model.meta import Session [as 别名]
# 或者: from pacemaker.model.meta.Session import query [as 别名]
    def run(self):

        # look for root tasks
        #
        # SELECT task.id, count(ta.parent_task_id) AS parent_count 
        # FROM task 
        # LEFT OUTER JOIN task_association ta ON task.id=ta.child_task_id
        # WHERE request_id = %d
        # GROUP BY task.id
        # HAVING count(ta.parent_task_id) = 0
        roottasks = Session.query(Task).filter(Task.request_id==self.id).\
                outerjoin((task_association_table,
                          Task.id==task_association_table.c.child_task_id)).\
                group_by(Task).\
                having(func.count(task_association_table.c.parent_task_id)==0)
        for roottask in roottasks:
            roottask.run()
开发者ID:rojkov,项目名称:pacemaker,代码行数:19,代码来源:__init__.py


注:本文中的pacemaker.model.meta.Session.query方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。