
# py
from flask import Flask, render_template, redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('setting')
db = SQLAlchemy(app=app)
''' 创建表 '''
class User(db.Model):
id = db.Column(db.Integer, primary_key=True, comment='用户ID')
name = db.Column(db.String(30), comment='用户名')
num = db.Column(db.Integer, comment='关注数')
# 所有用户
@app.route('/')
def all_users():
users = User.query.order_by(User.num.desc()).all()
return render_template('all_users.html', users=users)
# 添加用户
@app.route('/add_user', methods=['GET','POST'])
def add_user():
if request.method == 'POST':
name = request.form.get('name')
num = request.form.get('num')
new_user = User(name=name, num=num)
db.session.add(new_user)
db.session.commit()
return redirect(url_for('all_users'))
return render_template('add_user.html')
# 修改用户
@app.route('/edit_user', methods=['GET','POST'])
def edit_user():
user_id = request.args.get('user_id')
one_user = User.query.get(user_id)
if request.method == 'POST':
name = request.form.get('name')
one_user.name = name
db.session.add(one_user)
db.session.commit()
return redirect(url_for('all_users'))
return render_template('edit_user.html', one_user=one_user)
# 删除单个用户
@app.route('/delete_user')
def delete_user():
user_id = request.args.get('user_id')
one_user = User.query.get(user_id)
db.session.delete(one_user)
db.session.commit()
return redirect(url_for('all_users'))
# 批量删除用户
@app.route('/delete_users', methods=['POST'])
def delete_users():
user_ids = request.form.getlist('user_ids')
for user_id in user_ids:
user = User.query.get(user_id)
db.session.delete(user)
db.session.commit()
return redirect(url_for('all_users'))
# 用户详情
@app.route('/user_detail')
def user_detail():
user_id = request.args.get('user_id')
one_user = User.query.get(user_id)
return render_template('user_detail.html', one_user=one_user)
# 提醒登录
@app.route('/login',methods=['POST'])
def login():
return '请先登录'
if __name__ == '__main__':
# db.drop_all()
# db.create_all()
app.run()
# setting配置文件
DEBUG = True # 开启调试模式
SECRET_KEY = "962464" # 随机输入字符串
PER_PAGE = 10 # 设置分页每页显示数据的个数为10
# SQLALCHEMY_DATABASE_URI = 链接的数据库类型+使用的驱动://用户名:密码@数据库地址:端口/数据库名称?数据库编码
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:mysql@127.0.0.1:3306/exam2?charset=utf8' # 连接数据库
# SQLALCHEMY_ECHO = True # 在控制面板显示
SQLALCHEMY_TRACK_MODIFICATIONS = False
{# base.html #}
{% block top %}
<a href="{{ url_for('add_user') }}">添加用户</a>
<a href="{{ url_for('all_users') }}">所有用户</a>
<hr>
{% endblock top %}
{% block content %}
{% endblock content %}
{# add_user.html #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
{% extends 'base.html' %}
{% block content %}
<form action="" method="post">
用户名:<input type="text" name="name" value="">
关注数:<input type="text" name="num" value="">
<input type="submit" value="确认添加">
</form>
{% endblock content %}
</body>
</html>
{# all_users.html #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>所有用户</title>
</head>
<body>
{% extends 'base.html' %}
{% block content %}
<form action="{{ url_for('delete_users') }}" method="post">
<table border="1" cellspacing="0">
<tr>
<td>用户ID</td>
<td>用户名</td>
<td>关注数</td>
<td>操作</td>
</tr>
{% for user in users %}
<tr>
<td><input type="checkbox" name="user_ids" value="{{ user.id }}">{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.num }}</td>
<td>
<a href="{{ url_for('delete_user', user_id=user.id) }}">删除</a>
<a href="{{ url_for('edit_user', user_id=user.id) }}">修改</a>
<a href="{{ url_for('user_detail', user_id=user.id) }}">用户详情</a>
</td>
</tr>
{% endfor %}
</table>
<input type="submit" value="批量删除">
</form>
{% endblock content %}
</body>
</html>
{# edit_user.html #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>修改用户</title>
</head>
<body>
{% extends 'base.html' %}
{% block content %}
<form action="" method="post">
修改用户:<input type="text" name="name" placeholder="{{ one_user.name }}">
<input type="submit" value="确认修改">
</form>
{% endblock content %}
</body>
</html>
{# user_detail #}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户详情</title>
</head>
<body>
{% extends 'base.html' %}
{% block content %}
<h1>用户详情页</h1>
ID:{{ one_user.id }}<br>
用户名:{{ one_user.name }}<br>
关注数:{{ one_user.num }}<br>
<form action="{{ url_for('login') }}" method="post">
<input type="submit" value="关注">
</form>
{% endblock content %}
</body>
</html>
版权声明:本文为weixin_44930101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。