示例#1
0
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)
示例#2
0
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": "删除错误"})
示例#3
0
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)