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


Python db.session方法代码示例

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


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

示例1: dao_archive_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_archive_service(service_id):
    # have to eager load templates and api keys so that we don't flush when we loop through them
    # to ensure that db.session still contains the models when it comes to creating history objects
    service = Service.query.options(
        joinedload('templates'),
        joinedload('templates.template_redacted'),
        joinedload('api_keys'),
    ).filter(Service.id == service_id).one()

    service.active = False
    service.name = get_archived_db_column_value(service.name)
    service.email_from = get_archived_db_column_value(service.email_from)

    for template in service.templates:
        if not template.archived:
            template.archived = True

    for api_key in service.api_keys:
        if not api_key.expiry_date:
            api_key.expiry_date = datetime.utcnow() 
开发者ID:alphagov,项目名称:notifications-api,代码行数:22,代码来源:services_dao.py

示例2: dao_add_user_to_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_add_user_to_service(service, user, permissions=None, folder_permissions=None):
    permissions = permissions or []
    folder_permissions = folder_permissions or []

    try:
        from app.dao.permissions_dao import permission_dao
        service.users.append(user)
        permission_dao.set_user_service_permission(user, service, permissions, _commit=False)
        db.session.add(service)

        service_user = dao_get_service_user(user.id, service.id)
        valid_template_folders = dao_get_valid_template_folders_by_id(folder_permissions)
        service_user.folders = valid_template_folders
        db.session.add(service_user)

    except Exception as e:
        db.session.rollback()
        raise e
    else:
        db.session.commit() 
开发者ID:alphagov,项目名称:notifications-api,代码行数:22,代码来源:services_dao.py

示例3: dao_find_services_sending_to_tv_numbers

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_find_services_sending_to_tv_numbers(start_date, end_date, threshold=500):
    return db.session.query(
        Notification.service_id.label('service_id'),
        func.count(Notification.id).label('notification_count')
    ).filter(
        Notification.service_id == Service.id,
        Notification.created_at >= start_date,
        Notification.created_at <= end_date,
        Notification.key_type != KEY_TYPE_TEST,
        Notification.notification_type == SMS_TYPE,
        func.substr(Notification.normalised_to, 3, 7) == '7700900',
        Service.restricted == False,  # noqa
        Service.research_mode == False,
        Service.active == True,
    ).group_by(
        Notification.service_id,
    ).having(
        func.count(Notification.id) > threshold
    ).all() 
开发者ID:alphagov,项目名称:notifications-api,代码行数:21,代码来源:services_dao.py

示例4: dao_update_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_update_service(service):
    db.session.add(service) 
开发者ID:alphagov,项目名称:notifications-api,代码行数:4,代码来源:services_dao.py

示例5: dao_remove_user_from_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_remove_user_from_service(service, user):
    try:
        from app.dao.permissions_dao import permission_dao
        permission_dao.remove_user_service_permissions(user, service)

        service_user = dao_get_service_user(user.id, service.id)
        db.session.delete(service_user)
    except Exception as e:
        db.session.rollback()
        raise e
    else:
        db.session.commit() 
开发者ID:alphagov,项目名称:notifications-api,代码行数:14,代码来源:services_dao.py

示例6: fetch_todays_total_message_count

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def fetch_todays_total_message_count(service_id):
    result = db.session.query(
        func.count(Notification.id).label('count')
    ).filter(
        Notification.service_id == service_id,
        Notification.key_type != KEY_TYPE_TEST,
        func.date(Notification.created_at) == date.today()
    ).group_by(
        Notification.notification_type,
        Notification.status,
    ).first()
    return 0 if result is None else result.count 
开发者ID:alphagov,项目名称:notifications-api,代码行数:14,代码来源:services_dao.py

示例7: _stats_for_service_query

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def _stats_for_service_query(service_id):
    return db.session.query(
        Notification.notification_type,
        Notification.status,
        func.count(Notification.id).label('count')
    ).filter(
        Notification.service_id == service_id,
        Notification.key_type != KEY_TYPE_TEST
    ).group_by(
        Notification.notification_type,
        Notification.status,
    ) 
开发者ID:alphagov,项目名称:notifications-api,代码行数:14,代码来源:services_dao.py

示例8: dao_suspend_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_suspend_service(service_id):
    # have to eager load api keys so that we don't flush when we loop through them
    # to ensure that db.session still contains the models when it comes to creating history objects
    service = Service.query.options(
        joinedload('api_keys'),
    ).filter(Service.id == service_id).one()

    for api_key in service.api_keys:
        if not api_key.expiry_date:
            api_key.expiry_date = datetime.utcnow()

    service.active = False 
开发者ID:alphagov,项目名称:notifications-api,代码行数:14,代码来源:services_dao.py

示例9: __commit

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def __commit(self):
        """Commits the current db.session, does rollback on failure."""
        from sqlalchemy.exc import IntegrityError

        try:
            db.session.commit()
        except IntegrityError:
            db.session.rollback() 
开发者ID:rtzll,项目名称:flask-todolist,代码行数:10,代码来源:models.py

示例10: delete

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def delete(self):
        """Deletes this model from the db (through db.session)"""
        db.session.delete(self)
        self.__commit() 
开发者ID:rtzll,项目名称:flask-todolist,代码行数:6,代码来源:models.py

示例11: save

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def save(self):
        """Adds this model to the db (through db.session)"""
        db.session.add(self)
        self.__commit()
        return self 
开发者ID:rtzll,项目名称:flask-todolist,代码行数:7,代码来源:models.py

示例12: dao_create_service

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_create_service(
    service,
    user,
    service_id=None,
    service_permissions=None,
):
    # the default property does not appear to work when there is a difference between the sqlalchemy schema and the
    # db schema (ie: during a migration), so we have to set sms_sender manually here. After the GOVUK sms_sender
    # migration is completed, this code should be able to be removed.

    if not user:
        raise ValueError("Can't create a service without a user")

    if service_permissions is None:
        service_permissions = DEFAULT_SERVICE_PERMISSIONS

    organisation = dao_get_organisation_by_email_address(user.email_address)

    from app.dao.permissions_dao import permission_dao
    service.users.append(user)
    permission_dao.add_default_service_permissions_for_user(user, service)
    service.id = service_id or uuid.uuid4()  # must be set now so version history model can use same id
    service.active = True
    service.research_mode = False

    for permission in service_permissions:
        service_permission = ServicePermission(service_id=service.id, permission=permission)
        service.permissions.append(service_permission)

    # do we just add the default - or will we get a value from FE?
    insert_service_sms_sender(service, current_app.config['FROM_NUMBER'])

    if organisation:
        service.organisation_id = organisation.id
        service.organisation_type = organisation.organisation_type
        if organisation.email_branding:
            service.email_branding = organisation.email_branding

        if organisation.letter_branding and not service.letter_branding:
            service.letter_branding = organisation.letter_branding

    elif service.organisation_type in NHS_ORGANISATION_TYPES or email_address_is_nhs(user.email_address):
        service.email_branding = dao_get_email_branding_by_name('NHS')
        service.letter_branding = dao_get_letter_branding_by_name('NHS')
    if organisation:
        service.crown = organisation.crown
    elif service.organisation_type in CROWN_ORGANISATION_TYPES:
        service.crown = True
    elif service.organisation_type in NON_CROWN_ORGANISATION_TYPES:
        service.crown = False
    service.count_as_live = not user.platform_admin

    db.session.add(service) 
开发者ID:alphagov,项目名称:notifications-api,代码行数:55,代码来源:services_dao.py

示例13: dao_fetch_todays_stats_for_all_services

# 需要导入模块: from app import db [as 别名]
# 或者: from app.db import session [as 别名]
def dao_fetch_todays_stats_for_all_services(include_from_test_key=True, only_active=True):
    today = date.today()
    start_date = get_london_midnight_in_utc(today)
    end_date = get_london_midnight_in_utc(today + timedelta(days=1))

    subquery = db.session.query(
        Notification.notification_type,
        Notification.status,
        Notification.service_id,
        func.count(Notification.id).label('count')
    ).filter(
        Notification.created_at >= start_date,
        Notification.created_at < end_date
    ).group_by(
        Notification.notification_type,
        Notification.status,
        Notification.service_id
    )

    if not include_from_test_key:
        subquery = subquery.filter(Notification.key_type != KEY_TYPE_TEST)

    subquery = subquery.subquery()

    query = db.session.query(
        Service.id.label('service_id'),
        Service.name,
        Service.restricted,
        Service.research_mode,
        Service.active,
        Service.created_at,
        subquery.c.notification_type,
        subquery.c.status,
        subquery.c.count
    ).outerjoin(
        subquery,
        subquery.c.service_id == Service.id
    ).order_by(Service.id)

    if only_active:
        query = query.filter(Service.active)

    return query.all() 
开发者ID:alphagov,项目名称:notifications-api,代码行数:45,代码来源:services_dao.py


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