def put(self, id):
'''Update an event by ID'''
ev = Event.query.filter(Event.disabled == 0).filter(Event.id_event == id).first()
abort_if_none(ev, 404, 'Not Found')
fill_object(ev, request.json)
db.session.commit()
return msg('success!')
python类db()的实例源码
def delete(self, id):
'''Delete an event by ID'''
ev = Event.query.filter(Event.disabled == 0).filter(Event.id_event == id).first()
abort_if_none(ev, 404, 'Not Found')
ev.disabled = 1
db.session.commit()
return msg('disabled')
def post(self):
'''Create a new event'''
ev = Event()
tags = request.json['tags'][:] # copy the tags dict
del request.json['tags']
for tm in tags:
t = Tag.query\
.filter(Tag.name == tm['name'])\
.filter(Tag.disabled == 0)\
.first()
if t is not None:
ev.tags.append(t)
continue
tag = Tag()
fill_object(tag, tm)
ev.tags.append(tag)
fill_object(ev, request.json)
# submit objects to db
db.session.add(ev)
db.session.commit()
return msg(ev.id_event, 'id')
def put(self, id):
'''Update an event_type by ID'''
et = EventType.query.filter(EventType.disabled == 0).filter(EventType.id_event_type == id)
et = et.first()
abort_if_none(et, 404, 'Not Found')
fill_object(et, request.json)
db.session.commit()
return msg('altered')
def delete(self, id):
'''Delete an event_type by ID'''
et = EventType.query.filter(EventType.disabled == 0).filter(EventType.id_event_type == id)
et = et.first()
abort_if_none(et, 404, 'Not Found')
et.disabled = 1
db.session.commit()
return msg('disabled')
def put(self, id):
"""Update an user by ID"""
us = User.query\
.filter(User.disabled == 0)\
.filter(User.id_user == id)\
.first()
abort_if_none(us, 404, 'not found')
fill_object(us, request.json)
db.session.commit()
return msg('success!')
def delete(self, id):
"""Delete an user by ID"""
us = User.query.filter(User.disabled == 0)\
.filter(User.id_user == id)\
.first()
abort_if_none(us, 404, 'not found')
us.disabled = 1
db.session.commit()
return msg('disabled on db')
def post(self):
"""Create a new user"""
us = User()
fill_object(us, request.json)
db.session.add(us)
db.session.commit()
return msg(us.id_user, 'id')
def number_total_on_queue(job_type):
num = get_sql_answer(db, "select count(*) from {}".format(table_name(job_type)))
return num
def number_waiting_on_queue(job_type):
num = get_sql_answer(db, "select count(*) from {} where started is null".format(table_name(job_type)))
return num
def number_unfinished(job_type):
num = get_sql_answer(db, "select count(*) from {} where finished is null".format(table_name(job_type)))
return num
def kick(job_type):
q = u"""update {table_name} set started=null, finished=null
where finished is null""".format(
table_name=table_name(job_type))
run_sql(db, q)
print_status(job_type)
def reset_enqueued(job_type):
q = u"update {} set started=null, finished=null".format(table_name(job_type))
run_sql(db, q)
def print_idle_dynos(job_type):
heroku_conn = heroku3.from_key(os.getenv("HEROKU_API_KEY"))
app = heroku_conn.apps()[HEROKU_APP_NAME]
running_dynos = []
try:
running_dynos = [dyno for dyno in app.dynos() if dyno.name.startswith(process_name(job_type))]
except (KeyError, TypeError) as e:
pass
dynos_still_working = get_sql_answers(db, "select dyno from {} where started is not null and finished is null".format(table_name(job_type)))
dynos_still_working_names = [n for n in dynos_still_working]
logger.info(u"dynos still running: {}".format([d.name for d in running_dynos if d.name in dynos_still_working_names]))
# logger.info(u"dynos stopped:", [d.name for d in running_dynos if d.name not in dynos_still_working_names])
# kill_list = [d.kill() for d in running_dynos if d.name not in dynos_still_working_names]
def add_dois_to_queue_from_file(filename, job_type):
start = time()
command = """psql `heroku config:get DATABASE_URL`?ssl=true -c "\copy {table_name} (id) FROM '{filename}' WITH CSV DELIMITER E'|';" """.format(
table_name=table_name(job_type), filename=filename)
call(command, shell=True)
q = "update {} set id=lower(id)".format(table_name(job_type))
run_sql(db, q)
logger.info(u"add_dois_to_queue_from_file done in {} seconds".format(elapsed(start, 1)))
print_status(job_type)
def maint(self, **kwargs):
repos = Repository.query.filter(Repository.name==None, Repository.error==None).all()
num_to_commit = 0
for my_repo in repos:
if not my_repo.name:
my_repo.set_repo_info()
num_to_commit += 1
db.session.merge(my_repo)
logger.info(u"my_repo: {}".format(my_repo))
if num_to_commit >= 1:
safe_commit(db)
num_to_commit = 0
safe_commit(db)
def number_total_on_queue(job_type):
num = get_sql_answer(db, "select count(*) from {}".format(table_name(job_type)))
return num
def number_waiting_on_queue(job_type):
num = get_sql_answer(db, "select count(*) from {} where started is null".format(table_name(job_type)))
return num
def number_unfinished(job_type):
num = get_sql_answer(db, "select count(*) from {} where finished is null".format(table_name(job_type)))
return num