【发布时间】:2021-05-17 13:30:36
【问题描述】:
我正在为我的自制桌面 RPG 创建一个在线角色表,并且花了一些时间来创建角色表。它显示角色的所有统计数据。我正在使用 Flask 和 SQLite。
但是,在实际游戏过程中,角色的统计数据通常会发生变化。我希望用户能够更改字符表中的相关统计信息(xp、级别、生命值等),然后将其保存回 SQL 数据库。这可以做到吗?怎么样?
这是我在后端用来显示字符表的烧瓶代码中的 sn-p。
@app.route("/<int:character_id>")
@login_required
def character_sheet(character_id):
characters = db.execute(
"""SELECT
*
FROM
characters
WHERE
id = :id AND
user_id = :user_id
""",
id = character_id,
user_id = session ["user_id"],
)
if not characters:
return abort(404)
return render_template("character_sheet.html", character=characters[0])
这是字符表 HTML 的一部分。
{% extends "main.html" %}
{% block title %}
Character Sheet
{% endblock %}
{% block main %}
<div class="container-fluid">
<div class="row">
<div class="col"><h3>Basic Information</h3></div>
</div>
<div class="row">
<div class="col border border-dark">Name</div>
<div class="col border border-dark"><p class="written">{{ character.name }}</p></div>
<div class="col border border-dark">Race</div>
<div class="col border border-dark"><p class="written">{{ character.race }}</p></div>
</div>
<div class="row">
<div class="col border border-dark">Class</div>
<div class="col border border-dark"><p class="written">{{ character.cha_class }}</p></div>
<div class="col border border-dark">Level</div>
<div class="col border border-dark"><p class="big-written">{{ character.level }}</p></div>
<div class="col border border-dark">Current Exp</div>
<div class="col border border-dark"><p class="written">{{ character.experience }}</p></div>
<div class="col border border-dark">Alignment</div>
<div class="col border border-dark"><p class="written">{{ character.alignment_lc }}{{ character.alignment_ge }}</p></div>
</div>
<div class="row">
<div class="col border border-dark">Height</div>
<div class="col border border-dark"><p class="written">{{ character.height }}</p></div>
<div class="col border border-dark">Weight</div>
<div class="col border border-dark"><p class="written">{{ character.weight }}</p></div>
<div class="col border border-dark">Eye Colour</div>
<div class="col border border-dark"><p class="written">{{ character.eye_colour }}</p></div>
<div class="col border border-dark"> Hair Colour</div>
<div class="col border border-dark"><p class="written">{{ character.hair_colour }}</p></div>
</div>
<div class="row">
<div class="col border border-dark">Sex</div>
<div class="col border border-dark"><p class="written">{{ character.sex }}</p></div>
<div class="col border border-dark">Age</div>
<div class="col border border-dark"><p class="written">{{ character.age }}</p></div>
<div class="col border border-dark">Handedness</div>
<div class="col border border-dark"><p class="written">{{ character.handedness }}</p></div>
</div>
【问题讨论】: