sqllocaldb, VisualStudio, Connection
@"Server=(localdb)\mssqllocaldb;Database=DbTrade3;Trusted_Connection=True;"
sqllocaldb, VisualStudio, Connection
@"Server=(localdb)\mssqllocaldb;Database=DbTrade3;Trusted_Connection=True;"
sqllocaldb, VisualStudio, Project, dotnet tool, install
WIN-C3FC7KU40FE\SQLEXPRESS
(localdb)\mssqllocaldb;Database=DbTrade3;Trusted_Connection=True;
(localdb)\mssqllocaldb
**********************************************************************
** Visual Studio 2026 Developer PowerShell v18.0.2
** Copyright (c) 2025 Microsoft Corporation
**********************************************************************
PS F:\Projects\VS\TradingApi> dotnet ef migrations add InitialCreate -p TradingDAL
Could not execute because the specified command or file was not found.
Possible reasons for this include:
* You misspelled a built-in dotnet command.
* You intended to execute a .NET program, but dotnet-ef does not exist.
* You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
PS F:\Projects\VS\TradingApi> dotnet tool install --global dotnet-ef
You can invoke the tool using the following command: dotnet-ef
Tool 'dotnet-ef' (version '10.0.1') was successfully installed.
PS F:\Projects\VS\TradingApi> dotnet ef migrations add InitialCreate -p TradingDAL
Build started...
Build succeeded.
Done. To undo this action, use 'ef migrations remove'
PS F:\Projects\VS\TradingApi> dotnet ef database update -p TradingDAL
Build started...
Build succeeded.
Acquiring an exclusive lock for migration application. See https://aka.ms/efcore-docs-migrations-lock for more information if this takes too long.
Applying migration '20251215041501_InitialCreate'.
Done.
PS F:\Projects\VS\TradingApi>
На диаграмме показаны две таблицы: ORDER и TRADE. Хотя в исходном коде связь между ними не определена явно, на практике они часто связаны через поле symbol, которое присутствует в обеих таблицах. PK в диаграмме означает Primary Key (первичный ключ) - уникальный идентификатор записи в таблице.
Теперь реализуем создание структуры базы данных и запись данных:
# 1. Создание структуры базы данных
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///trading.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# Определяем модели
class Order(db.Model):
id = db.Column(db.Integer, primary_key=True)
symbol = db.Column(db.String(10), nullable=False)
price = db.Column(db.Float, nullable=False)
quantity = db.Column(db.Integer, nullable=False)
class Trade(db.Model):
id = db.Column(db.Integer, primary_key=True)
symbol = db.Column(db.String(10), nullable=False)
price = db.Column(db.Float, nullable=False)
quantity = db.Column(db.Integer, nullable=False)
# Создаем структуру базы данных
with app.app_context():
db.create_all()
------------------------------------------------------------------------------
2. Запись данных в базу данных (по одной таблице):
-------------------------------------------------------------------------------
# 2. Запись данных в таблицу Order
with app.app_context():
# Очищаем таблицу, если нужно
Order.query.delete()
# Создаем новую запись
order = Order(
symbol='AAPL',
price=150.50,
quantity=100
)
# Добавляем и сохраняем запись
db.session.add(order)
db.session.commit()
# 3. Запись данных в таблицу Trade
with app.app_context():
# Очищаем таблицу, если нужно
Trade.query.delete()
# Создаем новую запись
trade = Trade(
symbol='AAPL',
price=150.75,
quantity=50
)
# Добавляем и сохраняем запись
db.session.add(trade)
db.session.commit()
---------------------------------------------------
Важные замечания:
app.app_context() для обеспечения правильной работы с базой данных db.session.commit() для сохранения изменений