我無法弄清楚這個錯誤,我chirp_id從中傳遞<a href>
了錯誤TypeError: createCmt() missing 1 required positional argument: 'chirp_id'
代碼片段
{% block content %}
<div class="row">
{% if chirp %}
<h2>{{ chirp[1] }}</h2>
<p>
By : {{ chirp[2] }}
</p>
<p>
{{ chirp[3] }}
</p>
<div>
<a class="btn btn-success" href="{{ url_for('createCmt', chirp_id='{{ chirp[0] }}') }}"> Comment </a>
</div>
{% else %}
<h3>
Invalid comment
</h3>
{% endif %}
</div>
按鈕呼叫的 URL 是這個
@app.route('/comment/create', methods=['GET', 'POST'])
def createCmt(chirp_id):
# check if user is logged in
if not session:
return redirect(url_for('login'))
if request.method == 'POST':
data = request.get_json() or {}
if data.get('body'):
user_id = session.get('user_id')
body = data.get('body', '')
body = body.strip()
sql_params = (chirp_id, user_id, body)
conn = db_connection()
cur = conn.cursor()
sql = """
INSERT INTO commentary (chirp_id, user_id, body) VALUES (%d, %d, '%s')
""" % sql_params
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
return jsonify({'status': 200, 'message': 'Success', 'redirect': '/'})
return jsonify({'status': 500, 'message': 'No Data submitted'})
return render_template('comment/create.html')
這是否意味著chirp_id沒有從chirp_id='{{ chirp[0] }}'
HTML 中傳遞?或者我只是愚蠢
編輯
這是我的 create.html 延伸到第一個 HTML
{% extends "comment/form.html" %}
{% block title %}
Create a Comment
{% endblock %}
{% block button %}
<div class="row">
<div class="offset-2 col-6">
<button type="button" class="btn btn-success" name="btnCreate" id="btnCreate" onclick="createCUM()">Create</button>
</div>
</div>
{% endblock %}
以及用于獲取正文值的 javascript
function createCUM(chirp_id) {
var body = document.getElementById("body").value;
axios({
method: "POST",
url: "/comment/create/" chirp_id,
data: {
body: body,
},
headers: {
"Content-Type": "application/json",
}
}).then(
(response) => {
var data = response.data;
if (data.redirect) {
// redirect exists, then set the URL to the redirect
window.location.href = data.redirect;
}
if (data.status == 500) {
alert(data.error);
window.location.href = "/"; // redirect to home page
}
},
)
}
uj5u.com熱心網友回復:
- 您的 @app.route 似乎缺少引數,您愿意這樣做嗎
@app.route("/comment/create/<chirp_id>", methods = ["GET", "POST"])
- 嘗試將您的 href 更改為
<a class="btn btn-success" href="{{ url_for('createCmt', chirp_id='{}'.format(chirp[0])) }}"> Comment </a>
附加編輯
我試圖運行它我這樣做了
a href 的路由
@app.route("/test")
def testing():
return render_template("testerer.html", chirp_id = 123)
發帖路線
@app.route("/comment/create/<chirp_id>", methods = ["GET", "POST"])
def createCmt(chirp_id):
return f"{chirp_id}"
HTML
<a class="btn btn-success" href="{{ url_for('createCmt', chirp_id='{}'.format(chirp_id) ) }}"> Comment </a>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/460646.html
