本文整理汇总了Python中mediacore.model.meta.DBSession.commit方法的典型用法代码示例。如果您正苦于以下问题:Python DBSession.commit方法的具体用法?Python DBSession.commit怎么用?Python DBSession.commit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mediacore.model.meta.DBSession
的用法示例。
在下文中一共展示了DBSession.commit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: bulk
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def bulk(self, type=None, ids=None, **kwargs):
"""Perform bulk operations on media items
:param type: The type of bulk action to perform (delete)
:param ids: A list of IDs.
"""
if not ids:
ids = []
elif not isinstance(ids, list):
ids = [ids]
if type == 'delete':
Category.query.filter(Category.id.in_(ids)).delete(False)
DBSession.commit()
success = True
else:
success = False
return dict(
success = success,
ids = ids,
parent_options = unicode(category_form.c['parent_id'].display()),
)
示例2: insert_settings
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def insert_settings(defaults):
"""Insert the given setting if they don't exist yet.
XXX: Does not include any support for MultiSetting. This approach
won't work for that. We'll need to use sqlalchemy-migrate.
:type defaults: list
:param defaults: Key and value pairs
:rtype: list
:returns: Any settings that have just been created.
"""
inserted = []
existing_settings = set(x[0] for x in DBSession.query(Setting.key) \
.filter(Setting.key \
.in_(key for key, value in defaults)))
for key, value in defaults:
if key in existing_settings:
continue
transaction = DBSession.begin_nested()
try:
s = Setting(key, value)
DBSession.add(s)
transaction.commit()
inserted.append(s)
except IntegrityError:
transaction.rollback()
if inserted:
DBSession.commit()
return inserted
示例3: _autocommit_commit
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def _autocommit_commit(req):
try:
DBSession.commit()
except:
_autocommit_rollback(req)
raise
else:
_autocommit_fire_callbacks(req, req.commit_callbacks)
示例4: setUp
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def setUp(self):
super(DBTestCase, self).setUp()
self.env_dir = self._create_environment_folders()
self.pylons_config = setup_environment_and_database(self.env_dir,
enabled_plugins=self.enabled_plugins)
add_default_data()
DBSession.commit()
config.push_process_config(self.pylons_config)
示例5: _autocommit_commit
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def _autocommit_commit(req):
from mediacore.model.meta import DBSession
try:
DBSession.commit()
except:
_autocommit_rollback(req)
raise
else:
_autocommit_fire_callbacks(req, req.commit_callbacks)
示例6: main
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def main(parser, options, args):
if not options.uri:
parser.print_help()
sys.exit(1)
d = feedparser.parse(options.uri)
podcast = podcast_from_feed(d, tags=options.tags, save_files=options.save_files)
DBSession.commit()
print "Created podcast:", podcast
print "Imported %d episodes." % len(podcast.media.all())
sys.exit(0)
示例7: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def save(self,
id,
email_address,
display_name,
login_details,
delete=None,
**kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.User` instance.
:param id: User ID. If ``"new"`` a new user is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
user = fetch_row(User, id)
if delete:
DBSession.delete(user)
redirect(action='index', id=None)
user.display_name = display_name
user.email_address = email_address
user.user_name = login_details['user_name']
password = login_details['password']
if password is not None and password != '':
user.password = password
if login_details['group']:
group = fetch_row(Group, login_details['group'])
user.groups = [group]
else:
user.groups = []
DBSession.add(user)
# Check if we're changing the logged in user's own password
logged_in_user = request.environ['repoze.who.identity']['user']
if user.user_id == logged_in_user.user_id \
and password is not None and password != '':
DBSession.commit()
# repoze.who sees the Unauthorized response and clears the cookie,
# forcing a fresh login with the new password
raise webob.exc.HTTPUnauthorized().exception
redirect(action='index', id=None)
示例8: main
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def main(parser, options, args):
if not options.uri:
parser.print_help()
sys.exit(1)
d = feedparser.parse(options.uri)
# FIXME: This script relies on the v0.8.2 models.
# It should be updated for v0.9.0
print "I'm sorry, but this RSS import script is out of date."
sys.exit(1)
podcast = podcast_from_feed(d, tags=options.tags, save_files=options.save_files)
DBSession.commit()
print "Created podcast:", podcast
print "Imported %d episodes." % len(podcast.media.all())
sys.exit(0)
示例9: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def save(
self, id, slug, title, subtitle, author_name, author_email, description, details, feed, delete=None, **kwargs
):
"""Save changes or create a new :class:`~mediacore.model.podcasts.Podcast` instance.
Form handler the :meth:`edit` action and the
:class:`~mediacore.forms.admin.podcasts.PodcastForm`.
Redirects back to :meth:`edit` after successful editing
and :meth:`index` after successful deletion.
"""
podcast = fetch_row(Podcast, id)
if delete:
file_paths = thumb_paths(podcast).values()
DBSession.delete(podcast)
DBSession.commit()
helpers.delete_files(file_paths, Podcast._thumb_dir)
redirect(action="index", id=None)
if not slug:
slug = title
if slug != podcast.slug:
podcast.slug = get_available_slug(Podcast, slug, podcast)
podcast.title = title
podcast.subtitle = subtitle
podcast.author = Author(author_name, author_email)
podcast.description = description
podcast.copyright = details["copyright"]
podcast.category = details["category"]
podcast.itunes_url = feed["itunes_url"]
podcast.feedburner_url = feed["feedburner_url"]
podcast.explicit = {"yes": True, "clean": False}.get(details["explicit"], None)
if id == "new":
DBSession.add(podcast)
DBSession.flush()
create_default_thumbs_for(podcast)
redirect(action="edit", id=podcast.id)
示例10: main
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def main(parser, options):
status = 0
output = []
if options.dump_to:
s, o = dump_backup_file(options.dump_to)
status += s
output.append(o.strip())
DBSession.commit() # Commit and start a new transaction
if options.read_from:
s, o = restore_backup_file(options.read_from)
status += s
output.append(o.strip())
DBSession.commit() # Commit and start a new transaction
if options.dump_files_dir:
s, o = backup_files(options.dump_files_dir)
status += s
output.append(o.strip())
if options.restore_files_dir:
s, o = restore_files(options.restore_files_dir)
status += s
output.append(o.strip())
if not any((options.dump_to, options.read_from,
options.dump_files_dir, options.restore_files_dir)):
parser.print_help()
print ""
status, output = 1, ['Incorrect or insufficient arguments provided.\n']
# print output and exit
sys.stdout.write("\n---\n".join(output))
print ""
if status == 0:
print "Operation completed successfully."
else:
print "Error occurred in operation. You can use the --debug flag for more information."
print ""
sys.exit(status)
示例11: setUp
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def setUp(self):
super(DBTestCase, self).setUp()
global_config = {
'plugins': '',
# 'debug': 'true',
# 'error_email_from': '[email protected]',
# '__file__': '.../standalone.ini',
# 'here': '...',
# 'smtp_server': 'localhost'
}
local_config = {
'sqlalchemy.url': 'sqlite://',
# 'full_stack': 'true',
# 'image_dir': '.../data/images',
# 'enable_gzip': 'true',
# 'static_files': 'true',
# 'external_template': 'false',
# 'sqlalchemy.echo': 'False',
# 'file_serve_method': 'default',
# 'app_instance_uuid': '', str(uuid.uuid4())
# 'media_dir': '.../data/media',
# 'sqlalchemy.pool_recycle': '3600',
# 'layout_template': 'layout',
# 'sa_auth.cookie_secret': 'superdupersecret',
# 'cache_dir': '.../data',
# 'external_template_url': 'http://some/valid_genshi_template.html',
# 'external_template_timeout': '600',
# 'beaker.session.key': 'mediacore',
# 'external_template_name': 'external',
# 'beaker.session.secret': 'superdupersecret'
}
self.pylons_config = load_environment(global_config, local_config)
metadata.create_all(bind=DBSession.bind, checkfirst=True)
add_default_data()
DBSession.commit()
config.push_process_config(self.pylons_config)
示例12: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def save(self, id, slug, title, subtitle, author_name, author_email,
description, details, feed, delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.podcasts.Podcast` instance.
Form handler the :meth:`edit` action and the
:class:`~mediacore.forms.admin.podcasts.PodcastForm`.
Redirects back to :meth:`edit` after successful editing
and :meth:`index` after successful deletion.
"""
podcast = fetch_row(Podcast, id)
if delete:
DBSession.delete(podcast)
DBSession.commit()
delete_thumbs(podcast)
redirect(action='index', id=None)
if not slug:
slug = title
if slug != podcast.slug:
podcast.slug = get_available_slug(Podcast, slug, podcast)
podcast.title = title
podcast.subtitle = subtitle
podcast.author = Author(author_name, author_email)
podcast.description = description
podcast.copyright = details['copyright']
podcast.category = details['category']
podcast.itunes_url = feed['itunes_url']
podcast.feedburner_url = feed['feedburner_url']
podcast.explicit = {'yes': True, 'clean': False}.get(details['explicit'], None)
if id == 'new':
DBSession.add(podcast)
DBSession.flush()
create_default_thumbs_for(podcast)
redirect(action='edit', id=podcast.id)
示例13: insert_settings
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def insert_settings(defaults):
"""Insert the given setting if they don't exist yet.
XXX: Does not include any support for MultiSetting. This approach
won't work for that. We'll need to use sqlalchemy-migrate.
:type defaults: list
:param defaults: Key and value pairs
:rtype: list
:returns: Any settings that have just been created.
"""
inserted = []
try:
settings_query = DBSession.query(Setting.key)\
.filter(Setting.key.in_([key for key, value in defaults]))
existing_settings = set(x[0] for x in settings_query)
except ProgrammingError:
# If we are running paster setup-app on a fresh database with a
# plugin which tries to use this function every time the
# Environment.loaded event fires, the settings table will not
# exist and this exception will be thrown, but its safe to ignore.
# The settings will be created the next time the event fires,
# which will likely be the first time the app server starts up.
return inserted
for key, value in defaults:
if key in existing_settings:
continue
transaction = DBSession.begin_nested()
try:
s = Setting(key, value)
DBSession.add(s)
transaction.commit()
inserted.append(s)
except IntegrityError:
transaction.rollback()
if inserted:
DBSession.commit()
return inserted
示例14: save
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def save(self, id, email_address, display_name, login_details, delete=None, **kwargs):
"""Save changes or create a new :class:`~mediacore.model.auth.User` instance.
:param id: User ID. If ``"new"`` a new user is created.
:type id: ``int`` or ``"new"``
:returns: Redirect back to :meth:`index` after successful save.
"""
user = fetch_row(User, id)
if delete:
DBSession.delete(user)
redirect(action="index", id=None)
user.display_name = display_name
user.email_address = email_address
user.user_name = login_details["user_name"]
password = login_details["password"]
if password is not None and password != "":
user.password = password
if login_details["groups"]:
query = DBSession.query(Group).filter(Group.group_id.in_(login_details["groups"]))
user.groups = list(query.all())
else:
user.groups = []
DBSession.add(user)
# Check if we're changing the logged in user's own password
if user.id == request.perm.user.id and password is not None and password != "":
DBSession.commit()
# repoze.who sees the Unauthorized response and clears the cookie,
# forcing a fresh login with the new password
raise webob.exc.HTTPUnauthorized().exception
redirect(action="index", id=None)
示例15: __call__
# 需要导入模块: from mediacore.model.meta import DBSession [as 别名]
# 或者: from mediacore.model.meta.DBSession import commit [as 别名]
def __call__(self, environ, start_response):
"""Commit or rollback the DBSession for every request.
Your controller may override this method and have it call
:meth:`BareBonesController.__call__` directly to avoid
this transaction management.
"""
try:
app_iter = BareBonesController.__call__(self, environ,
start_response)
except:
# An unexpected error has occurred that the WebError will catch
DBSession.rollback()
raise
else:
# webob.exc.HTTPException's are caught and turned into a regular
# responses in WSGIController._inspect_call. Veto error responses:
if 200 <= response.status_int < 400:
DBSession.commit()
else:
DBSession.rollback()
return app_iter