用户更新
展示
提出问题
每次都得重新注册,只要重新启动服务器就得重新注册,所以要引入数据库。
补充
代码
app.py
from flask import Flask
from apps import create_app
app = create_app()
if __name__ == '__main__':
app.run()
setting.py
# -*- codeing = utf-8 -*-
# @Time : 2021/8/25 16:04
# @Author : 二帆
# @File : settings.py
# @Software : PyCharm
ENV='development'
DEBUG=True
apps---->init.py
# -*- codeing = utf-8 -*-
# @Time : 2021/8/25 16:05
# @Author : 二帆
# @File : __init__.py.py
# @Software : PyCharm
from flask import Flask
import settings
from apps.user.view import user_bp
def create_app():
app =Flask(__name__,template_folder='../templates',static_folder='../static') #app是一个核心对象
app.config.from_object(settings) #加载配置
#蓝图
app.register_blueprint(user_bp)
print(app.url_map)
return app
apps—>user----->view.py
# -*- codeing = utf-8 -*-
# @Time : 2021/8/25 16:24
# @Author : 二帆
# @File : view.py
# @Software : PyCharm
from flask import Blueprint, request, render_template, redirect
from apps.user.model import User
user_bp = Blueprint('user',__name__)
#列表保存的是一个一个的用户对象
users = []
@user_bp.route('/')
def user_center():
return render_template('user/show.html',users = users)
@user_bp.route('/register',methods =['GET','POST'])
def register():
if request.method == 'POST':
#获取post提交的数据
username = request.form.get('username')
phone = request.form.get('phone')
password = request.form.get('password')
repassword = request.form.get('repassword')
if password == repassword:
#用户名唯一
for user in users:
if user.username == username:
return render_template('user/register.html',msg = '用户名已存在')
#创建user对象
user = User(username,password,phone)
#添加到用户列表
users.append(user)
return redirect('/')
return render_template('user/register.html')
@user_bp.route('/login',methods =['GET','POST'])
def login():
return '用户登录'
@user_bp.route('/del')
def del_user():
#获取你传递的username
username = request.args.get('username')
#根据username找到列表中的user对象
for user in users:
if user.username == username:
# 删除user
users.remove(user)
return '删除成功'
else:
return '删除失败'
@user_bp.route('/update',methods = ['POST','GET'],endpoint='update')
def update_user():
if request.method == 'POST':
realname = request.form.get('realname')
username = request.form.get('username')
password = request.form.get('password')
phone = request.form.get('phone')
for user in users:
if user.username == realname:
user.username = username
user.phone = phone
return '更改成功!'
else:
#get 请求
username = request.args.get('username')
for user in users:
if user.username == username:
return render_template('user/update.html',user=user)
@user_bp.route('/logout',methods =['GET','POST'])
def logout():
return '用户退出'
apps—>user----->model.py
# -*- codeing = utf-8 -*-
# @Time : 2021/8/25 16:54
# @Author : 二帆
# @File : model.py
# @Software : PyCharm
class User:
def __init__(self,username,password,phone=None):
self.username = username
self.password = password
self.phone = phone
def __str__(self):
return self.username
templates–>base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title%}用户中心{% endblock %}</title>
<style>
#head{
height:50px;
background-color: bisque;
}
#head ul{
list-style: none;
}
#head ul li{
float: left;
width:100px;
text-align: center;
font-size:18px;
height:50px;
line-height: 50px;
}
#middle{
height: 600px;
}
#footer{
height: 50px;
line-height: 50px;
background-color: darkcyan;
}
</style>
{% block mycss %}{% endblock %}
</head>
<body>
<div id="head">
<ul>
<li><a href="">首页</a></li>
<li><a href="">秒杀</a></li>
<li><a href="">秒杀</a></li>
<li><a href="">会员</a></li>
<li><a href="">图书</a></li>
</ul>
</div>
<div id="middle">
{% block middle %}
{% endblock %}
</div>
<div id="footer"></div>
{% block myjs %}{% endblock %}
</body>
</html>
templates–>user---->register.html
{% extends 'base.html' %}
{% block title %}
用户注册
{% endblock %}
{% block middle %}
<p style="color: red">{{ msg }}</p>
<form action="{{ url_for('user.register') }}" method="post">
<p><input type="text" name="username" placeholder="用户名"></p>
<p><input type="password" name="password" placeholder="密码"></p>
<p><input type="password" name="repassword" placeholder="确认密码"></p>
<p><input type="number" name="phone" placeholder="手机号码"></p>
<p><input type="submit" value="用户注册"></p>
</form>
{% endblock %}
templates–>user---->show.html
{% extends 'base.html' %}
{% block middle %}
<h1>用户信息</h1>
<span>当前用户人数是:{{ users | length }}人</span>
<table border="1" cellspacing="0" width ="60%">
{% for user in users %}
<tr>
<td>{{ loop.index }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
<td>{{ user.phone }}</td>
<td><a href="javascript:;"onclick="update('{{ user.username}}')">修改</a>
<a href="javascript:;" onclick="del('{{ user.username}}')"> 删除</a></td>
</tr>
{% endfor %}
</table>
{% endblock %}
{% block myjs%}
<script>
function del(username){
//console.log(username)
location.href = '/del?username='+username
}
//定义一个修改的函数
function update(username){
location.href ='/update?username='+username
}
</script>
{% endblock %}
templates–>user---->update.html
{% extends 'base.html' %}
{% block title %}
用户信息修改
{% endblock %}
{% block middle %}
<h1>用户信息更新</h1>
<form action="{{ url_for('user.update') }}" method="post" >
<p><input type="hidden" name="realname" value="{{ user.username }}"></p>
<p><input type="text" name="username" placeholder="用户名" value="{{ user.username }}"></p>
<p><input type="password" name="password" placeholder="密码" value="{{ user.password }}" disabled></p>
<p><input type="number" name="phone" placeholder="手机号码" value="{{ user.phone }}"></p>
<p><input type="submit" value="用户更新"></p>
</form>
{% endblock %}