Код: Выделить всё
@app.route("/buy", methods=["GET", "POST"])
@login_required
def buy():
"""Buy shares of stock"""
if request.method == "GET":
return render_template("buy.html")
else:
symbol = request.form.get("symbol")
shares = request.form.get("shares")
if not symbol:
return apology("must give symbol", 403)
quote = lookup(symbol)
if quote == None:
return apology("symbol dose not exist", 403)
if not shares:
return apology("must give number of shares", 403)
if int(shares) < 0:
return apology("share must be positive", 403)
cost = int(shares) * quote["price"]
user_id = session["user_id"]
cash = db.execute("SELECT cash FROM users WHERE id = :user_id", user_id=user_id)
user_cash = cash[0]["cash"]
if user_cash < cost:
return apology("you dont have enough mony")
new_cash = user_cash - cost
db.execute("update users set cash= ? WHERE id = ?",new_cash, user_id)
db.execute("INSERT INTO transactions (user_id, symbol, shares, price) values(:user_id, :symbol, :shares, :price)",user_id = session["user_id"], symbol=symbol, shares=shares, price=quote["price"])
flash("Bought!")
return redirect("/")
Код: Выделить всё
INFO: SELECT cash FROM users WHERE id = 1
INFO: update users set cash= 9663.759999999995 WHERE id = 1
ERROR: INSERT INTO transactions (user_id, symbol, shares, price) values(1, 't', '1', 18.68)
ERROR: Exception on /buy [POST]
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspaces/111413212/finance/helpers.py", line 48, in decorated_function
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/workspaces/111413212/finance/app.py", line 94, in buy
db.execute("INSERT INTO transactions (user_id, symbol, shares, price) values(:user_id, :symbol, :shares, :price)",user_id = session["user_id"], symbol=symbol, shares=shares, price=quote["price"])
File "/usr/local/lib/python3.12/site-packages/cs50/sql.py", line 28, in decorator
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/cs50/sql.py", line 473, in execute
raise e
RuntimeError: no such table: main.user
INFO: 127.0.0.1 - - [04/Jul/2024 16:00:49] "POST /buy HTTP/1.1" 500
я пытаюсь удалить ее, тогда код работает без каких-либо ошибок
и в терминале вставка предложения в таблицу... выделена красным
и я попробовал сделать это по-другому:
Код: Выделить всё
db.execute("INSERT INTO transactions (user_id, symbol, shares, price) values(?, ?, ?, ?)",user_id , quote["symbol"], shares, quote["price"])
Подробнее здесь: https://stackoverflow.com/questions/787 ... y-function
Мобильная версия