Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0596
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次研究了批量删除用户
- 批量删除
- 删除用户太快了
- 可以把注册用户集成能进来吗?
<form action="/user/add" method="POST">
username:<input name="username"/><br/>
password:<input name="password"/><br/>
<input type="submit" name="regist"><br/>
</form>
- 提交到/user/add进行处理
@app_user.route("/user/add", methods=['POST', 'GET'])
def user_add():
current_user = session["current_user"]
if current_user != "admin":
return "you dont have right to add user"
username = request.form["username"]
password = request.form["password"]
print(username)
conninfo = "postgres://postgres:oeasypg@localhost:5432/oeasydb"
with psycopg.connect(conninfo) as conn:
with conn.cursor() as cur:
try:
sql = "INSERT INTO login(username, password) VALUES(%s, %s)"""
t = (username,password)
cur.execute(sql,t)
conn.commit()
except Exception:
print(traceback.print_exc())
return "add " + username + " failed!"
else:
return redirect("/user")
from flask import Flask,render_template,request,redirect,session,Blueprint
from db import pool
import psycopg
import traceback
app_user = Blueprint("user", __name__)
@app_user.route('/user/')
def user():
current_user = session["current_user"]
print(current_user)
if current_user == "admin":
with pool.connection() as conn:
with conn.cursor() as cur:
cur.execute("SELECT username FROM login where username != 'admin';")
records = cur.fetchall()
cur.close()
conn.close()
return render_template("user_manager.html", l = records,current_user = current_user)
else:
return "You are not admin<br/>"
@app_user.route("/user/del", methods=['POST', 'GET'])
def del_user():
current_user = session["current_user"]
print(current_user)
username = request.form["d_un"]
print("uname",username)
if current_user == "admin":
with pool.connection() as conn:
with conn.cursor() as cur:
try:
sql = """DELETE FROM login WHERE username=%s"""
t = (username,)
cur.execute(sql,t)
conn.commit()
cur.close()
conn.close()
except Exception:
print(traceback.print_exc())
cur.close()
conn.close()
return username + " deletion failed"
else:
return redirect("/user")
else:
return "You have no right to delete!"
@app_user.route("/user/dels", methods=['POST', 'GET'])
def del_users():
users = request.form.getlist("users")
current_user = session["current_user"]
if current_user == "admin":
with pool.connection() as conn:
with conn.cursor() as cur:
try:
sql = """DELETE FROM login WHERE username=%s"""
for user in users:
t = (user,)
cur.execute(sql,t)
conn.commit()
cur.close()
conn.close()
except Exception:
print(traceback.print_exc())
cur.close()
conn.close()
return username + " already exists"
else:
return redirect("/user")
else:
return "del users failed!"
@app_user.route("/user/add", methods=['POST', 'GET'])
def user_add():
current_user = session["current_user"]
if current_user != "admin":
return "you dont have right to add user"
username = request.form["username"]
password = request.form["password"]
print(username)
conninfo = "postgres://postgres:oeasypg@localhost:5432/oeasydb"
with psycopg.connect(conninfo) as conn:
with conn.cursor() as cur:
try:
sql = "INSERT INTO login(username, password) VALUES(%s, %s)"""
t = (username,password)
cur.execute(sql,t)
conn.commit()
except Exception:
print(traceback.print_exc())
return "add " + username + " failed!"
else:
return redirect("/user")
- 这次 把插入数据 整合进入了模块当中
- 可以对于已经存在的数据进行更新吗?🤔
- 下次再说!
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。