在不复制的情况下将烧瓶插入数据库

用户

我用的是烧瓶的例子,我想显示数据库的内容,没有重复, 我修改了节目_条目.html看起来像:

 {% extends "layout.html" %}
 {% block body %}
   {% if session.logged_in %}
     <form action="{{ url_for('add-entry') }}" method=post class=add-entry>
       <dl>
        <dt>Available:
        <dd><input type=text size=25 name=attribute1>
        <dt>Used:
        <dd><input type=text size=25 name=attribute2>
        <dd><input type=submit value=Update>
       </dl>
     </form>
   {% endif %}
     <table border="1" style="width:300px">
       <ul class=myDB>
       <tr>
         <th>Available</th>
         <td>{% for entry in myDB %} {{ entry.attribute1 }} {% endfor %}</td>
       </tr>
       <tr>
         <th>Used</th>
         <td>{% for entry in myDB %} {{ entry.attribute2 }} {% endfor %}</td>                  
       </tr>
       </ul>            
     </table>
 {% endblock %}

以及我的数据库.py看起来像:

^{pr2}$

我的问题是,每当我更新数据库和刷新web服务器时,我仍然会看到重复的: 那么,有没有什么方法可以不重复地显示attribute1、attribute2的更新值:即除了在这里使用for循环并调用myDB的所有条目之外:

<td>{% for entry in myDB %} {{ entry.attribute1 }} {% endfor %}</td>

<td>{% for entry in myDB %} {{ entry.attribute2 }} {% endfor %}</td>

因为没用

<td> {{ myDB.attribute1 }} </td>

<td> {{ myDB.attribute2 }} </td>


已被浏览了3248次
更新日期: 2020-10-28 19:01:50
1 个回答
fefe Tyson

不是百分之百确定这就是你的要求,但这是我的答案。在

创建数据库时,可以选择是否允许重复变量/插入。在

例如:

"create table registratedClients (id INTEGER PRIMARY KEY, clientLogin TEXT unique)"

该代码只允许插入唯一的clientLogin。 如果我使用这个代码:

^{pr2}$

我的数据库只包含:

id=1 clientLogin=Kalle

id=2 clientLogin=Duck

编辑: 对于“在多个列中唯一”,请在创建表时执行以下操作:

 "create table registratedClients (id INTEGER PRIMARY KEY, clientLogin TEXT, chatName TEXT, UNIQUE(clientLogin, chatName) ON CONFLICT REPLACE)"

最后一件事可以用你想发生的事来代替。在

评论 - 2020年9月11日 20:34

最新Python问答

推荐Python问答