Ниже приведен код, который, как я думал, может иметь отношение к проблеме:
init.py
Код: Выделить всё
from flaskblog.extensions import db, login_manager, bcrypt, mail, migrate, config, Flask
def create_app(config_class=config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
migrate.init_app(app, db)
bcrypt.init_app(app)
mail.init_app(app)
login_manager.init_app(app)
from flaskblog.users.routes import users
from flaskblog.posts.routes import posts
from flaskblog.main.routes import main
from flaskblog.errors.handlers import errors
from flaskblog.trading.routes import trading
app.register_blueprint(users)
app.register_blueprint(posts)
app.register_blueprint(main)
app.register_blueprint(errors)
app.register_blueprint(trading)
return app
< /code>
Раздел от Routes.py в торговой папке < /p>
trading = Blueprint('trading', __name__)
@trading.route("/buy", methods=['GET', 'POST'])
@login_required
def buy():
total_value = calculate_portfolio_value()
form = BuyForm()
if form.validate_on_submit():
price = get_current_price(form.symbol.data.upper())
transaction = StockTransaction(user_id=current_user.id, stock_symbol=form.symbol.data.upper(), shares=form.shares.data, price= price or 0, transaction_type='buy')
db.session.add(transaction)
db.session.commit()
flash(f'Bought {form.shares.data} shares of {form.symbol.data.upper()}', 'success')
return redirect(url_for('buy.html'))
stock_options = ['AAPL', 'MSFT', 'GOOGL', 'AMZN', 'TSLA']
return render_template('buy.html', form=form, portfolio=current_user.get_portfolio(), advice=get_stock_advice(), total_value=total_value, stock_options=stock_options)
< /code>
buy.html в папке шаблонов < /p>
{% extends "layout.html" %}
{% block content %}
Buy Stocks
[b]Advice:[/b] {{ advice }}
{{ form.hidden_tag() }}
Stock Symbol
{% for ticker in stock_options %}
{{ ticker }}
{% endfor %}
{{ form.shares.label }} {{ form.shares(class="form-control") }}
{{ form.submit(class="btn btn-success mt-2") }}
Your Portfolio
[list]
{% for symbol, shares in portfolio.items() %}
[*]{{ symbol }} — {{ shares }} shares
{% else %}
[*]No holdings yet.
{% endfor %}
[/list]
{% endblock %}
< /code>
Единственная другая точка, в которой упоминается buck.html, находится в плате.
{% if title %}
Easy Trading - {{ title }}
{% else %}
Easy Trading
{% endif %}
[url=/]Easy Trading[/url]
{% if current_user.is_authenticated %}
[url={{ url_for(]Account[/url]
[url={{ url_for(]Logout[/url]
{% else %}
[url={{ url_for(]Login[/url]
[url={{ url_for(]Register[/url]
{% endif %}
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
{% if request.endpoint == 'posts.all_posts' %}
Navigation Bar
[list]
[url={{ url_for(]Portfolio[/url]
[url={{ url_for(]New Post[/url]
[/list]
{% endif %}
{% if request.endpoint == 'main.home' %}
{% if current_user.is_authenticated %}
Navigation Bar
[list]
[url={{ url_for(]Portfolio[/url]
[url={{ url_for(]Blog[/url]
[/list]
{% endif %}
{% endif %}
{% if request.endpoint == 'main.portfolio' %}
Navigation Bar
[list]
[url={{ url_for(]Buy Stocks[/url]
[url={{ url_for(]Sell Stocks[/url]
[/list]
{% endif %}
{% if request.endpoint == 'trading.buy' %}
Navigation Bar
[list]
[url={{ url_for(]Sell Stocks[/url]
[url={{ url_for(]Portfolio[/url]
[/list]
{% endif %}
{% if request.endpoint == 'trading.sell' %}
Navigation Bar
[list]
[url={{ url_for(]Portfolio[/url]
[url={{ url_for(]Buy Stocks[/url]
[/list]
{% endif %}
(извините, если это много кода, я попытался добавить минимальную сумму, чтобы объяснить проблему)
Подробнее здесь: https://stackoverflow.com/questions/797 ... my-website