def reload_database():
    exit_reload = False
    try:
        response = requests.get(f'http://{host}:{port}')
        print(
            'The website seems to be running. Please stop it and run this file again.',
            file=sys.stderr)
        exit_reload = True
    except:
        pass
    if exit_reload:
        exit(11)
    try:
        os.remove('flasksite/site.db')
        print('previous DB file removed')
    except:
        print('no previous file found')

    db.create_all()

    # creating two users
    hashed_password = bcrypt.generate_password_hash('testing').decode('utf-8')
    default_user1 = User(username='******',
                         email='*****@*****.**',
                         image_file='another_pic.jpeg',
                         password=hashed_password)
    db.session.add(default_user1)

    hashed_password = bcrypt.generate_password_hash('testing2').decode('utf-8')
    default_user2 = User(username='******',
                         email='*****@*****.**',
                         image_file='7798432669b8b3ac.jpg',
                         password=hashed_password)
    db.session.add(default_user2)

    hashed_password = bcrypt.generate_password_hash('testing3').decode('utf-8')
    default_user3 = User(username='******',
                         email='*****@*****.**',
                         password=hashed_password)
    db.session.add(default_user3)

    # TODO: Here you should include the generation of rows for your database

    try:
        db.session.commit()
        print('\nFinalized - database created successfully!')
    except Exception as e:
        print('The operations were not successful. Error:', file=sys.stderr)
        print(e, file=sys.stderr)
        db.session.rollback()
def register():
    if current_user.is_authenticated:  # if the user is already authenticated
        return redirect(url_for('home'))  # redirect the user to the home page
    form = RegistrationForm()  # instanciates a new form -- lecture 6
    if form.validate_on_submit(
    ):  # if the user submitted data and the data is validated
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        # create a new instance of the class User -- lecture 6
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)  # adds the user to the database
        try:  # error handling
            # transaction management - databases
            # the changes to the database are only persisted once you commit the session
            db.session.commit()
            app.logger.debug(
                'New user created successfully.')  # error handling
            flash('Your account has been created! You are now able to log in.',
                  'success')  # show message to user
            return redirect(url_for('login'))
        except Exception as e:
            # transaction management - databases
            # if something goes wrong with the transaction, you need to rollback the session
            db.session.rollback()
            app.logger.critical(
                f'Error while creating the user {user}')  # error handling
            app.logger.exception(e)  # error handling
            flash(
                'The system encountered a problem while creating your account. Try again later.',
                'danger')
    return render_template('register.html', title='Register', form=form)
示例#3
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data, password=hashed_password, email=form.email.data,)
        db.session.add(user)
        db.session.commit()
        flash('Your account created!', 'success')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
示例#4
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.share'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user = User(username=form.username.data, email=form.email.data, password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in', 'success')
        return redirect(url_for('users.login'))
    return render_template('register.html', title='Register', form=form)
示例#5
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('users.reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been updated! You are now able to log in', 'success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html', title='Reset Password', form=form)
示例#6
0
def reg():
    if current_user.is_authenticated:
        return redirect(url_for('greetings'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(f"Welcome, {form.username.data}!", 'success')
        return redirect(url_for('login'))
    return render_template('reg.html', form=form)
示例#7
0
def register_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = verify_register_token(token)
    if not user:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('users.request_access'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(surname=form.surname.data,
                    forename=form.forename.data,
                    username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in',
              'success')
        return redirect(url_for('users.login'))
    return render_template('register.html', title='Register', form=form)
示例#8
0
            fake_distance =row['fake_distance'],
            image_file =row['image_file'],
            count = randrange(175)
            )

        db.session.add(park)
        db.session.commit()
        
    df_user = pd.read_csv('data/user.csv')
    print(df_user.head())
    for index, row in df_user.iterrows():
        user = User(
            username=row['username'],
            first_name=row['first_name'],
            last_name=row['last_name'],
            postal_code=row['postal_code'],
            prefecture =row['prefecture'],
            my_number=row['my_number'],
            email=row['email'],
            password=row['password'],
            )
        db.session.add(user)
        db.session.commit()
            







def reload_database():
    exit_reload = False
    try:
        response = requests.get(f'http://{host}:{port}')
        app.logger.critical(
            'The website seems to be running. Please stop it and run this file again.'
        )
        exit_reload = True
    except:
        pass
    if exit_reload:
        exit(11)
    try:
        os.remove('flasksite/site.db')
        app.logger.info('previous DB file removed')
    except:
        app.logger.info('no previous DB file found')

    assert not os.path.exists(
        'flasksite/site.db'
    ), 'It seems that site.db was not deleted. Please delete it manually!'

    db.create_all()

    # creating two users
    hashed_password = bcrypt.generate_password_hash('testing').decode('utf-8')
    default_user1 = User(username='******',
                         email='*****@*****.**',
                         image_file='another_pic.jpeg',
                         password=hashed_password)
    db.session.add(default_user1)

    hashed_password = bcrypt.generate_password_hash('testing2').decode('utf-8')
    default_user2 = User(username='******',
                         email='*****@*****.**',
                         image_file='7798432669b8b3ac.jpg',
                         password=hashed_password)
    db.session.add(default_user2)

    hashed_password = bcrypt.generate_password_hash('testing3').decode('utf-8')
    default_user3 = User(username='******',
                         email='*****@*****.**',
                         password=hashed_password)
    db.session.add(default_user3)

    try:
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        app.logger.critical('Error while committing the user insertion.')
        app.logger.exception(e)

    # testing if the users were added correctly
    assert len(
        User.query.all()) == 3, 'It seems that user failed to be inserted!'

    # TODO: Here you should include the generation of rows for your database

    try:
        db.session.commit()
        app.logger.info('Finalized - database created successfully!')
    except Exception as e:
        db.session.rollback()
        app.logger.critical('The operations were not successful.')
        app.logger.exception(e)
示例#10
0
import os
from flasksite import db, bcrypt
from flasksite.models import User
db.create_all()

ADMIN_EMAIL = os.environ.get('ADMIN_EMAIL')
ADMIN_PASSWORD = os.environ.get('ADMIN_PASS')

if not User.query.filter_by(username='******').first():
    hashed_password = bcrypt.generate_password_hash(ADMIN_PASSWORD).decode(
        'utf-8')
    user = User(username='******', email=ADMIN_EMAIL, password=hashed_password)
    db.session.add(user)
    db.session.commit()