def process_mission_form_function(): from database import db, Project, Competence nom = flask.request.form["nom"] description = flask.request.form["description"] id_competence1 = flask.request.form.get('id_competence1') id_competence2 = flask.request.form.get('id_competence2') competence1 = Competence.query.filter_by(id=id_competence1).first() competence2 = Competence.query.filter_by(id=id_competence2).first() project = Project() if project is None: flask.redirect(flask.url_for("index"), 404) else: project.name = nom project.description = description project.id_employee = "<null>" project.state = 0 project.competences.append(competence1) project.competences.append(competence2) db.session.add(project) db.session.commit() return flask.redirect(flask.url_for("accueil_affaire"))
def scrape(project_id): db = Database() if db.get_project(project_id): # print("Project {} exists in the datatbase".format(project_id)) return True url = "https://smutba.se/project/{}/".format(project_id) page_html = requests.get(url) if page_html.status_code == 404: print("Project {} does not exist on the site".format(project_id)) return False page_soup = soup(page_html.content, "html5lib") project = Project(project_id) project.title = page_soup.find("h1", {"id": "file_title"}).text images_e = page_soup.find_all("img", {"class": "project-detail-image-main"}) for e in images_e: project.images.append(BASE_URL + e["src"]) project.description = page_soup.find("div", {"class": "panel__body"}).decode_contents() user_id = page_soup.find("h4", {"class": "panel__avatar-title"}).find("a").get("href", "").split("/")[-2] user = User(user_id) user.name = page_soup.find("span", {"class": "username"}).text user.add_user() project.user = user info = page_soup.find("div", {"class": "panel__footer"}).find_all("dd") project.posted = info[0].text project.views = info[1].text project.category = info[2].text project.licence = info[3].text trs = page_soup.find("tbody").find_all("tr") for i in range(0, len(trs), 2): tr = trs[i].find_all("td") if len(tr) < 4: break filename = tr[0].strong.text downloads = tr[1].text created = tr[2].text filesize = tr[3].text links = trs[i+1].find_all("a") download = Download(filename) download.downloads = downloads download.created = created download.filesize = filesize download.project_id = project.id for link in links: download.urls.append(BASE_URL + link.get("href", "")) download.add_download() success = project.add_project() if not success: print("Project {} was not successfully added to the database".format(project_id)) print("Project {} added to the database".format(project_id))
def create_project(): # are we logged in? if 'username' not in login_session: return redirect('/login') # check for POST data if request.method == 'POST': # create new Project and send it to db project = Project(name=request.form['project_name'], user_id=login_session['userid']) session.add(project) session.commit() return redirect(url_for('view_project', project_id=project.id)) else: return render_template('createproject.html')
def post(self): parser = reqparse.RequestParser() parser.add_argument('project_name', type=str, required=True, help='Name of project') parser.add_argument('users', type=str, action='append') args = parser.parse_args() project_name = args['project_name'] all_users = args['users'] project = Project(project_name=project_name, date_added=datetime.datetime.now()) session.add(project) all_names = get_all_usernames() user_objects = [] for name in all_users: if name in all_names: user_objects.append(get_user(name)) else: abort(404, {'message': 'Username %s does not exist' % name}) project.add_users(user_objects) try: session.commit() except Exception as project_exception: session.rollback() abort(404, {'message': str(project_exception)}) return jsonify({ 'project': 'http://%s:%s/project/%s' % (HOST, PORT, project_name), 'users': all_users })
def createProject(): if request.method == 'POST': nieuwProject = Project(titel = request.form['titel'], datum = request.form['datum'], afbeeldingUrl = request.form['afbeeldingUrl']) session.add(nieuwProject) session.commit() return redirect(url_for('projecten'))
# and represents a "staging zone" for all the objects loaded into the # database session object. Any change made against the objects in the # session won't be persisted into the database until you call # session.commit(). If you're not happy about the changes, you can # revert all of them back to the last commit by calling # session.rollback() session = DBSession() user1 = User(name="Luki", email="*****@*****.**") session.add(user1) session.commit() items = [] items.append(Project(user_id=1, name="Project 1")) items.append( Task(user_id=1, project_id=1, title="Ein Titel", description="Eine Beschreibung")) items.append( Task(user_id=1, project_id=1, title="Noch Ein Titel", description="Noch Eine Beschreibung")) for item in items: session.add(item) session.commit()
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from database import Project, Base from flask import session engine = create_engine('sqlite:///projecten.db') Base.metadata.bind = engine DBSession = sessionmaker(bind=engine) project1 = Project( id=1, datum=200804, titel="Portfolio Website", afbeeldingUrl="screen portfolio.jpg", beschrijving= "In Semester 1 (jaar 1) van Open-ICT werd de opdracht gegeven om een portfoliowebsite te maken waar de student al zijn/haar vaardigheden kon vertonen. Deze website moest bestaan uit meerder interactieve pagina's met een database. Ik heb gekozen om mijn website kalm en zakelijk te houden, omdat ik professionaliteit uit wil stralen. Hierboven het resultaat van de website." ) print('ada') session = DBSession() session.add(project1) session.commit()