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

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

25.10.2022, 12:39. Показов 2680. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2022, 12:39
Ответы с готовыми решениями:

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

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

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

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

2
113 / 115 / 19
Регистрация: 03.06.2022
Сообщений: 756
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
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
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
Ответ Создать тему
Новые блоги и статьи
Как создавать приложения для iOS/iPhone
InfoMaster 12.01.2025
Введение в разработку iOS-приложений Разработка приложений для iOS открывает огромные возможности в мире мобильных технологий. С каждым годом количество пользователей iPhone и iPad растет,. . .
Как использовать Kotlin в Android разработке
InfoMaster 12.01.2025
Язык программирования Kotlin, разработанный компанией JetBrains, стал неотъемлемой частью современного мира Android-разработки. Первоначально представленный в 2011 году, Kotlin был официально. . .
Использование Go (Golang) в backend разработке
InfoMaster 12.01.2025
Язык программирования Go (Golang), разработанный компанией Google, стал важным инструментом для разработчиков программного обеспечения, особенно в области бэкенд-разработки. С момента своего. . .
Как работать с Laravel в PHP
InfoMaster 12.01.2025
Введение в Laravel Laravel представляет собой современный PHP-фреймворк с открытым исходным кодом, который значительно упрощает и ускоряет процесс разработки веб-приложений. Этот фреймворк был. . .
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru