如何使用Flask视图中的循环从SQLite数据库中硬删除用户

时间:2019-05-02 04:05:45

标签: python flask django-views

我一直在研究一个非常简单的,可能是琐碎的Flask应用程序,该应用程序管理用户的凭据,例如sysadmin页面(更改用户名,密码,特权,电子邮件)。

现在我已经用HTML编写了以下代码:

<div id="signup-box" class="signup-box" style=" background-color:rgb(149, 202, 202); width: 60%;">       
          <table class="table" style="background-color:#ffffff00;">
           <thead >
                <tr>
                  <th style="text-align:center; vertical-align:inherit;">Username</th>
                  <th style="text-align:center; vertical-align:inherit;">Role</th>
                  <th style="text-align:center; background-color:rgba(104, 159, 223, 0.384);">Control</th>
                <tr>
              </thead>
              <tbody>                    
                  {% for i in range(0,lenUser) %}
                  <tr class="tr">

                      <td style="text-align:center; vertical-align:inherit;">{{ users[i] }}</td>
                      <td style="text-align:center; vertical-align:inherit;">{{ roles[i] }}</td>
                      <td style="text-align:center;">
                        <button form="edit_form" type="submit" value="Edit" class="button is-warning is-focused" style="margin-right: 45px;">Edit User</button>                                                           
                        <button form="delete_form" type="submit" value="Delete" class="button is-danger is-focused" style="margin-right: 45px;">Delete User</button>                                                                                       
                        <form id="edit_form" action="{{ url_for('edit_user', id=users.id) }}" method="POST">
                          <input type="hidden" name="_method" value="EDIT">                                                            
                        </form>
                        <form id="delete_form"action="{{ url_for('delete_user', id=users.id) }}" method="POST">
                          <input type="hidden" name="_method" value="DELETE">                                                                                        
                        </form>
                      </td>                          
                  </tr>
     {% endfor %}           
    </tbody>
  </table>
</div>

在Python中:

@ app.route(“ / delete_user /”)

def delete_user():
    if not session.get('logged_in'):
            return redirect(url_for('login'))
    con = sqlite3.connect('sqlite:///accounts.db')
    cur = con.cursor()
    cur.execute('DELETE FROM User WHERE id = "' +  request.args.get('id')+ '"')
    cur.commit()
    con.close()
    return flask.jsonify({'success':"True"})

作为获取我的用户的Python帮助程序:

def fetch_users():
        with session_scope() as s:                                
                 usrs = s.query(tabledef.User.username).order_by(tabledef.User.username).all()
                 tblUsrs = df.from_records(usrs)                             
        return(tblUsrs)

现在,它的作用是将用户作为数据帧获取,并在我的html表中将它们逐行输出,这正是该操作的目的。但是我也想在按HTML页面中的“删除”按钮时删除特定用户,对吗?问题是我似乎找不到从以下几行中选择用户的特定ID的方法:

<form id="delete_form"action="{{ url_for('delete_user', id=users.id) }}" method="POST">
 <input type="hidden" name="_method" value="DELETE"> 
</form>

我该如何解决?因为它是循环的,所以每次得到的字符串都是第一行的字符串

0 个答案:

没有答案