Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 35
1

Не создаётся база

25.10.2022, 12:39. Показов 2562. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Сразу 1000 извинений.
Знаю, что это вопрос задавался-перезадавался.
Знаю, что надо читать документацию (ну так по ней всё и прогонял).

Написал код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
 
db = SQLAlchemy()  # определяем базу
 
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///simple.db'
 
db.init_app(app)  # инициализация
 
 
class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    author = db.Column(db.String(100), nullable=False)
    
 
with app.app_context():
    db.create_all()  # разово, потом хотел удалить
 
 
# если файл исполняемый, то запускаем наш app
if __name__ == "__main__":
    app.run(debug=False)
Ни одной ошибки. Базы нет.
Можно и так.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
 
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///simple.db'
 
db = SQLAlchemy(app)  # подключаем базу
 
 
class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    author = db.Column(db.String(100), nullable=False)
    
 
with app.app_context():
    db.create_all()  # разово, потом хотел удалить
 
 
# если файл исполняемый, то запускаем наш app
if __name__ == "__main__":
    app.run(debug=False)
Мало что поменялось. Нет базы.

Пошёл другим путём.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
 
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///simple.db'
 
 
db = SQLAlchemy(app)  # подключаем базу
 
 
class Book(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    author = db.Column(db.String(100), nullable=False)
 
 
# если файл исполняемый, то запускаем наш app
if __name__ == "__main__":
    app.run(debug=False)
В терминале запускаю Python и делаю так (имя модуля - main.py):

from main import app, db
app.app_context().push()
db.create_all()

ни одной ошибки. Базы нет.

Еще 10000 извинений. Просто не пойму, что не так. Уже больше часа.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2022, 12:39
Ответы с готовыми решениями:

не создается база
Добрый день) такая проблема, в локальном phpmyadmin не добавляется новая база, при клике на кнопку...

Не создается база
Не создается локальная база. Пробовал через FlameRobin и IBExpert. Почему-то отвергает подключение....

Не создается база данных
Здравствуйте, начал только изучать базу данных, и вот проблема в Android Studio в File Explorer в...

Не создается база (EER)
Создал EER диаграмму, на ее основе хочу создать базу данных, но выдается следующее Что не так?...

2
113 / 115 / 19
Регистрация: 03.06.2022
Сообщений: 757
25.10.2022, 13:02 2
давайте без "не так"
0
0 / 0 / 0
Регистрация: 13.03.2021
Сообщений: 35
26.10.2022, 12:47  [ТС] 3
Когда я получил сообщение: "RuntimeError: Working outside of request context", - я понял, что не внимательно читал документацию. Точнее читал внимательно, но не ту версию. Прочитав нужную версию (ссылка есть в первом сообщении), исправил на:

Python
1
2
with app.app_context():
    db.create_all()
Но, как и изложено выше, упёрся в стену. Ошибки исчезли, но база не создавалась. Разумеется возник закономерный вопрос, что тут все же не так. В документации более ничего не увидел (видимо, плохо смотрел).

Дальнейший ход рассуждений был таким: раз это база данных, то, когда речь идёт о CREATE, INSERT или UPDATE, то тут нужен commit. Попытка решить проблему "в лоб":

Python
1
2
3
with app.app_context():
    db.create_all()
    db.commit()
результатов не принесла. В поисках на просторах Web, на Stackoverflow обнаружил одну идею и переписал так:

Python
1
2
3
with app.app_context():
    db.create_all()  
    db.session.commit()
И база создалась. Причем создалась на втором уровне вложенности: \var\main-instance\simple.db.

Начало положено...
0
26.10.2022, 12:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2022, 12:47
Помогаю со студенческими работами здесь

Не создается база в IBExpert
Установил IBExpert и Firebird, запустил сервер прописал вроде бы все, что надо, но при подключении...

Не создается база данных FB
вбиваю команды greate database 'localhost:c:\1\1.fdb' user 'admin' password 'admin'; и...

Не создается база данных
Здравствуйте. не получается создать базу данных((((( есть класс: package com.page; import...

Не создается база данных SQLite
Здравствуйте уважаемы форумчане! Столкнулся с проблем, не создается база данных. При запросе данных...

Не создаётся база данных MySQL
Проблема при создании поля desc text DEFAULT NULL Если его убрать, то всё работает! Ошибка:...

Не создается база в visual studiao
Ребят помогите пожалуйста 3 месяца делал курсовую ша не могу не подключить базу которую написал не...

Почему не создаётся база данных?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru