项目代码:
# config.py
# 项目配置文件
class Config:
# 项目密钥
SECRET_KEY = 'secret_key_here'
# 数据库配置
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@localhost/db_name'
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 用户配置
USERS_PER_PAGE = 10
INVESTMENTS_PER_PAGE = 10
REPORTS_PER_PAGE = 10
# db.py
# 数据库配置文件
from flask_sqlalchemy import SQLAlchemy
# 实例化数据库对象
db = SQLAlchemy()
def init_db(app):
# 初始化数据库
db.init_app(app)
### `models`
# app/models/investment.py
# 投资模型
from app import db
class Investment(db.Model):
# id
id = db.Column(db.Integer, primary_key=True)
# 股票id
stock_id = db.Column(db.Integer, db.ForeignKey('stock.id'))
# 投资金额
investment_amount = db.Column(db.Float)
# 创建时间
created_at = db.Column(db.DateTime, default=db.func.current_timestamp())
def __repr__(self):
return f'Investment(id={self.id}, stock_id={self.stock_id}, investment_amount={self.investment_amount},
created_at={self.created_at})'
# app/models/stock.py
# 股票模型
from app import db
class Stock(db.Model):
# id
id = db.Column(db.Integer, primary_key=True)
# 股票名称
stock_name = db.Column(db.String(100))
# 股票代码
stock_symbol = db.Column(db.String(10))
# 股票价格
price = db.Column(db.Float)
def __repr__(self):
return f'Stock(id={self.id}, stock_name={self.stock_name}, stock_symbol={self.stock_symbol},
price={self.price})'
# app/models/user.py
from werkzeug.security import generate_password_hash, check_password_hash
from app import db
class User(db.Model):
# id
id = db.Column(db.Integer, primary_key=True)
# 用户名
username = db.Column(db.String(80), unique=True, nullable=False)
# 密码(加密后存储)
password = db.Column(db.String(120), nullable=False)
def set_password(self, password):
self.password = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password, password)
def __repr__(self):
return f'User(id={self.id}, username={self.username})'


