def project_delete(project_id): project = Project.find_project_by_id(project_id) agent.delete_project(project) try: db.session.delete(project) db.session.commit() except: db.session.rollback() raise return redirect("/project/manage", code=302)
def del_project(): """ 功能: 通过project_id删除工程,首先在scrapyd服务器进行删除, 然后同步数据进行删除 :param project_id: 工程id :return: 如果在scrapyd服务器删除成功, 且数据库同步后返回success, 否则返回error """ try: project_name = request.form.get('project_name') # 依据id检索工程 project = Project.query.filter_by(project_name=project_name).first() # 判断scrapyd服务器是否删除成功, 成功则进行数据库同步, 并返回status if agent.delete_project(project): # 删除工程 db.session.delete(project) # 删除数据裤中对应工程下的spider spiders = SpiderInstance.query.filter_by(project_id=project.id).all() for spider in spiders: db.session.delete(spider) # 删除数据裤中对应工程下的job_instances instances = JobInstance.query.filter_by(project_id=project.id).all() for instance in instances: db.session.delete(instance) # 删除数据裤中对应工程下的job_execution executions = JobExecution.query.filter_by(project_id=project.id).all() for execution in executions: db.session.delete(execution) db.session.commit() return json.dumps({"code": 200, "status": "success"}) except Exception as e: return json.dumps({"code": 500, "status": "error", "msg": "删除错误"})
def project_delete(project_id): project = Project.find_project_by_id(project_id) agent.delete_project(project) db.session.delete(project) db.session.commit() return redirect("/project/manage", code=302)