我已经建立了一个简单的flask web应用程序,用户可以在其中添加和删除数据库中的任务。数据库中的所有条目都显示在模板中,并按分配的类型排序。不过,我无法将输出格式化为至少具有一定可读性。我该怎么做
实际的数据库使用不同的值和诸如此类的东西,所以现在并非所有这些都有意义
这是从我的sqlite数据库获取所有条目的函数:
def get_tsk_by_type(type):
c.execute("SELECT * FROM tasks WHERE type=:type", {'type': type})
result = c.fetchall()
return result
数据库:
c.execute("""CREATE TABLE IF NOT EXISTS tasks (
type text,
description text,
amount integer,
id integer
)""")
下面是我如何返回模板中显示的所有条目。如果您输入任务id,还可以删除任务
@app.route('/', methods = ['GET', 'POST'])
def index():
form = DeleteForm()
curr_homework = str(get_tsk_by_type("homework"))
curr_cleaning = str(get_tsk_by_type("cleaning"))
curr_cooking = str(get_tsk_by_type("cooking"))
if form.validate_on_submit():
try:
conn = sqlite3.connect('tasks.db', check_same_thread=False)
c = conn.cursor()
delete = request.form['delete']
if (delete):
remove_tsk(delete)
return redirect('/')
conn.close()
except:
return "Something went wrong while submitting the form"
return render_template('index.html', curr_homework = curr_homwork, curr_cleaning = curr_cleaning, curr_cooking = curr_cooking, form = form)
my index.html的相关部分如下所示:
{% block content %}
<div>
<p>
<span>Currently registered homework: {{ curr_homework }}</span><br />
<span>Currently registered cleaning tasks: {{ curr_cleaning }}</span><br />
<span>Currently registered cooking tasks {{ curr_cooking }}</span>
</p>
</div>
{% endblock content %}
但是,我得到的输出如下所示:
Currently registered homework: [('homework', 'math', 1, 'df19c0b1-a2128-431274-2e32-3a2f901b1b26')]
Currently registered cleaning tasks: [('cleaning', 'kitchen', 1, 'df19c0b1-aa18-4874-9e32-3a2f901b1b26')]
Currently registered cooking tasks: [('cooking', 'lunch', 1, '0697c139-0299-4c93-88ac-c07d77377796')]
我尝试过循环之类的东西,但它只会返回列表中的第一个元组,该元组通过类型()返回。我也试过panda,但我也不能让它以我想要的方式输出。我该如何美化它,使其易于阅读?没有括号等。?稍后我想分别显示每个单独的任务,最好是以div显示
我建议使用dict游标,以便您可以按名称访问结果元素。
您可以这样做(从:https://stackoverflow.com/a/3300514/42346):
然后你会得到这样的结果:
然后在模板中,您可以执行以下操作:
您可能会从数据库特定代码的稍微重新组织中获益。
您可以这样做:
然后在你看来,这样做:
相关问题 更多 >
编程相关推荐