1

Тема: Підключити базу

Доброго дня! В мене є сторінка з анкетой. Також є база даних, для цієї анкеті. Працюю з Flask.

Коли намагаюсь підключити базу в мене нічого не виходить.

@app.route('/survey', methods=['get'])
def question_page():
    questions = Question.query.all()
    return render_template(
        'questinnaire.html',
        questions=questions
    )

def survey():
    if not request.args:
        return redirect(url_for('index'))
    gender = request.args.get['gender']
    age = request.args.get['age']

    user = Data(
        gender=gender,
        age=age
    )
    db.session.add(user)
    db.session.commit()
    db.session.refresh(user)
    ask = request.args.get('ask')
    ask2 = request.args.get('ask2')
    ask3 = request.args.get('ask3')
    ask4 = request.args.get('ask4')
    ask5 = request.args.get('ask5')
    ask6 = request.args.get('ask6')

    answer = Result(id=user.person.id, ask=ask, ask2=ask2, ask3=ask3, ask4=ask4, ask5=ask5, ask6=ask6)
    db.session.add(answer)
    db.session.commit()
    return 'Ok'

db = SQLAlchemy()

class Question(db.Model):
    __tablename__="questions"

    question_id = db.Column('question_id', db.Integer, primary_key=True)
    questions = db.Column('questions', db.Text)


class Result(db.Model):
    __tablename__="answers"

    answers_id = db.Column('answer_id', db.Integer, primary_key=True)
    ask = db.Column(db.Text)
    ask2 = db.Column(db.Text)
    ask3 = db.Column(db.Text)
    ask4 = db.Column(db.Text)
    ask5 = db.Column(db.Text)
    ask6 = db.Column(db.Text)


class Data(db.Model):
    __tablename__="person"

    person_id = db.Column('person_id', db.Integer, primary_key=True)
    gender = db.Column('gender', db.Text)
    age = db.Column('age', db.Integer)

2 Востаннє редагувалося koala (04.12.2020 14:23:51)

Re: Підключити базу

darcy написав:

в мене нічого не виходить.

Вам треба увімкнути комп'ютер. Там має бути така коробка, до якої ідуть дроти з монітору і клавіатури, і на ній кнопочки. Одна з них його увімкне.

А якщо у вас виходить не "нічого", а якесь повідомлення про помилку, чи хоча б якесь вікно вистрибує і зникає - то напишіть про це. Ми не телепати.

Подякували: leofun011

3

Re: Підключити базу

Справа в тому, моя сторінка працює. Але, коли я проходжу анкету та натискаю відправити. У базу нічого не пишитеся

4

Re: Підключити базу

Як саме ви перевіряєте, що пишеться в базу?
Чи ви певні, що ваша сторінка викликає ті методи, які ви тут виклали?

5

Re: Підключити базу

Що у вас пише в консолі або  в браузері (якщо ви включили режим розробки в фласк)?
Провіре чи ви в коді маєте щось таке.

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'

або таке

SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'sqlite:///' + os.path.join(basedir, 'app.db')#

коротше чи прописано десь зякою базою данних повинна працювати SQLAlchemy

Подякували: koala1