包内包含__init__.py文件
user子应用中用到的页面 html 文件全部放到 templates\user 子目录中。
随着flask程序越来越复杂,我们需要对程序进行模块化的处理,以利于大项目的开发。
from flask import Blueprint
user_bp = Blueprint('user', __name__)
@user_bp.route('/')
def user_center():# print(url_for('user.register')) # 反向解析需要加上蓝图名称return render_template('user/show.html', users=users)
from flask import Flask
import settings
from apps.user.view import user_bpdef create_app():app = Flask(__name__,template_folder='../templates',static_folder='../static',)app.config.from_object(settings)# 将蓝图对象绑定到appapp.register_blueprint(user_bp)print(app.url_map)return app
from apps import create_appapp = create_app()if __name__ == '__main__':app.run(port=5002)
@user_bp.route('/update', methods=['GET', 'POST'], endpoint='update')
def user_update():if request.method == 'POST':# 获取post提交的数据username = request.form.get('username')return redirect('/')if request.method == 'GET':# 获取get提交的数据username = request.args.get('username')return render_template('user/update.html')
username = request.args.get('username')
username = request.form.get('username')
class User:def __init__(self, username, password, phone=None):self.username = usernameself.password = passwordself.phone = phonedef __str__(self):return self.username
from apps.user.model import User
user = User(username, password, phone)
{% block title %} 用户中心 {% endblock %} {% block mycss %}{% endblock %}{% block middle %}{% endblock %}{% block foot%}{% endblock %}{% block myjs %}{% endblock %}
{% extends 'base.html' %}
{% block title %}用户展示
{% endblock %}{% block middle %}当前用户人数时:{{ users|length }} 人{% for user in users %}- {{user.username}}-{{user.password}}-{{user.phone}}
{% endfor %}
{% for user in users %}{{ loop.index }} {{ user.username }} {{ user.password }} {{ user.phone }} { user.username }}')">修改{ user.username }}')">删除 {% endfor %}
{% endblock %}{% block myjs %}
{% endblock %}
{ user.username }}')">删除
# 配置文件ENV = 'development'
DEBUG = True
from apps import create_appapp = create_app()if __name__ == '__main__':app.run(port=5002)
from flask import Flask
import settings
from apps.user.view import user_bpdef create_app():app = Flask(__name__,template_folder='../templates',static_folder='../static',)app.config.from_object(settings)# 将蓝图对象绑定到appapp.register_blueprint(user_bp)print(app.url_map)return app
class User:def __init__(self, username, password, phone=None):self.username = usernameself.password = passwordself.phone = phonedef __str__(self):return self.username
from flask import Blueprint, request, render_template, redirect, url_for
from apps.user.model import Useruser_bp = Blueprint('user', __name__)# 列表保存用户对象
users = []@user_bp.route('/')
def user_center():# print(url_for('user.register')) # 反向解析需要加上蓝图名称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')password = request.form.get('password')repassword = request.form.get('repassword')phone = request.form.get('phone')if password == repassword:# 保证用户名唯一for user in users:if user.username == username:msg = '用户名已存在!'print(msg)return render_template('user/register.html', msg=msg)#4.4蓝图1:04:35# 创建user对象user = User(username, password, phone)# 添加到用户列表users.append(user)# print(users)return redirect('/')else:return render_template('user/register.html', msg='密码不一致!')return render_template('user/register.html')@user_bp.route('/login', methods=['GET', 'POST'])
def login():return '用户登录'@user_bp.route('/logout', methods=['GET', 'POST'])
def logout():return '用户退出'@user_bp.route('/del')
def del_user():# 获取传递过来的usernameusername = request.args.get('username')# 根据username找到列表中的对象for user in users:if user.username == username:users.remove(user)return redirect('/')else:return '删除失败'@user_bp.route('/update', methods=['GET', 'POST'], endpoint='update')
def user_update():if request.method == 'POST':# 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 == username:return render_template('user/update.html', msg='用户名重复!')else:for user in users:if user.username == realname:user.username = usernameuser.phone = phonereturn redirect('/')else:# get请求username = request.args.get('username')for user in users:# 匹配用户if user.username == username:return render_template('user/update.html', user=user)
{% block title %} 用户中心 {% endblock %} {% block mycss %}{% endblock %}{% block middle %}{% endblock %}{% block myjs %}{% endblock %}
{% extends 'base.html' %}
{% block title %}用户注册
{% endblock %}{% block middle %} {{ msg }}
{% endblock %}
{% extends 'base.html' %}
{% block title %}用户展示
{% endblock %}{% block middle %}当前用户人数时:{{ users|length }} 人{% for user in users %}- {{user.username}}-{{user.password}}-{{user.phone}}
{% endfor %}
{% for user in users %}{{ loop.index }} {{ user.username }} {{ user.password }} {{ user.phone }} { user.username }}')">修改{ user.username }}')">删除 {% endfor %}
{% endblock %}{% block myjs %}
{% endblock %}
{% extends 'base.html' %}{% block title %}用户信息修改
{% endblock %}{% block middle %}用户信息更新
{{ msg }}
{% endblock %}