Python Flask构建微信小程序订餐系统 (三)

news2024/11/17 14:21:50

🔥 管理员登录和列表界面 🔥

账号相关登录界面

1、新建 User 对象文件
2、新建login (登录的方法)、edit (编辑的方法)、reset-pwd(重置密码的方法)方法
3、新建对应的视图层

账户管理相关界面

1、新建 Account 对象文件
2、新建index(账户列表)、set(新建或者编辑账户)、info(账户详情)方法
3、新建对应的视图层

 🔥 账号相关登录界面 🔥

新建User.py文件

#引入蓝图功能
from flask import Blueprint

route_user=Blueprint('user_page',__name__)

@route_user.route("/login")
def login():
    return "login"

编辑 www.py 导入User

# _*_ coding: utf-8 _*_

from application import app
from web.controllers.index import route_index
from web.controllers.user.User import route_user

app.register_blueprint( route_index,url_prefix = "/" )
app.register_blueprint(route_user,url_prefix="/user")

执行命令 

export ops_config=local&&python manager.py

 通过 render_template 添加渲染文件

#引入蓝图功能
from flask import Blueprint
#渲染文件需要引入render_template
from flask import render_template

route_user=Blueprint('user_page',__name__)

@route_user.route("/login")
def login():
    #模版文件夹取名叫 "user/login.index"
    return render_template("user/login.html")

执行如下命令刷新页面

export ops_config=local&&python manager.py

提示模版找不到

需要我们下载 模版资源文件和静态资源文件 复制到工程的web目录下

 

 再次执行刷新页面的命令 , 还是提示找不到模版资源文件

分析一下找不到模版资源文件的原因 :  

通过__init__ 函数查看源码

template_folder 参数的含义就是从工程文件 order 下面的 templates 文件夹下面去寻找模版 , 但是工程文件夹下面没有 templates文件夹 . 

 解决方案 : 设置模版文件的目录

 执行如下命令刷新页面

export ops_config=local&&python manager.py

 

解决方案 : 需要添加链接管理器 UrlManger.py 

# -*- coding: utf-8 -*-

#在Python文件里面可以调用buildUrl、buildStaticUrl静态方法
#如果要想在html静态文件里面调用静态方法 buildUrl、buildStaticUrl静态方法呢 ?

class UrlManager(object):
    def __init__(self):
        pass

    @staticmethod
    def buildUrl( path ):
        return path

    @staticmethod
    def buildStaticUrl(path):
        ver = "%s" % 22222222
        path =  "/static" + path + "?ver=" + ver
        return UrlManager.buildUrl( path )

 编辑application.py文件

注入链接管理器UrlManger.py里面的函数buildStaticUrl、buildUrl到Html模版里面

'''
函数模版
'''
from common.libs.UrlManager import UrlManager
#注入函数buildStaticUrl、buildUrl到Html模版里面
app.add_template_global( UrlManager.buildUrl,"buildUrl" )
app.add_template_global( UrlManager.buildStaticUrl,"buildStaticUrl" )

 执行刷新命令

export ops_config=local&&python manager.py

虽然加载了 user/login 地址 , 但是看不到界面上面的图片和样式 

解决方案 : 

可以看到检查代码发现一片红, 样式加载出错

在 order/web/controller 文件夹下创建 static.py 文件

# _*_ coding: utf-8 _*_
#引入蓝图
#引入send_from_directory 解决界面加载资源文件的问题
from flask import Blueprint,send_from_directory
#引入app变量
from application import app

#创建Blueprint实例
route_static=Blueprint('static',__name__)
@route_static.route("/<path:filename>")
def index(filename):
    #根目录 app.root_path + "/web/static/"
    return send_from_directory(app.root_path+"/web/static/",filename)

 编辑 application.py 文件 

父类的init方法 设置 (static_folder=None)

......

      #父类的init方法
        super(Application,self ).__init__(import_name, template_folder = template_folder,
                                          root_path=root_path,static_folder=None)

......

编辑www.py文件

导入 route_static, 使用 register_blueprint 注册蓝图静态文件的路由地址

......
from web.controllers.static import route_static
......
......
app.register_blueprint(route_static,url_prefix="/static")
......

执行刷新页面的命令 python manager.py

 🔥 定义仪表盘页面 🔥

编辑 web/controllers/index.html文件

# _*_ coding: utf-8 _*_

from flask import Blueprint
from flask import render_template

# 创建蓝图实例
route_index = Blueprint( 'index_page',__name__)

#注册路由,通过斜杠能访问路由
@route_index.route("/")
def index():
    return render_template("index/index.html")
    #return "Hello World"

执行刷新页面的命令 python manager.py

 编辑 User.py 文件添加编辑用户信息的路由地址

@route_user.route("/edit")
def edit():
    return render_template("user/edit.html")

执行刷新页面的命令 python manager.py 

编辑 User.py 文件添加重置用户信息的路由地址

@route_user.route("/reset-pwd")
def resetPwd():
    return render_template("user/reset_pwd.html")

执行刷新页面的命令 python manager.py 

🔥 账号管理 🔥 

创建account控制器 (在web/controllers下面创建)

# _*_ coding: utf-8 _*_

#引入蓝图功能
from flask import Blueprint
#渲染文件需要引入render_template
from flask import render_template

route_account=Blueprint('account_page',__name__)

@route_account.route("/index")
def login():
    #模版文件夹取名叫 "account/login.index"
    return render_template("account/index.html")

@route_account.route("/info")
def info():
    return render_template("account/info.html")

@route_account.route("/set")
def set():
    return render_template("account/set.html")

编辑 www.py 文件 (导入账号控制器)

使用register_blueprint 蓝图注册账号控制的地址


# _*_ coding: utf-8 _*_

from application import app
from web.controllers.index import route_index
from web.controllers.user.User import route_user
from web.controllers.static import route_static
from web.controllers.account import route_account

app.register_blueprint( route_index,url_prefix = "/" )
app.register_blueprint(route_user,url_prefix="/user")
app.register_blueprint(route_static,url_prefix="/static")
app.register_blueprint(route_account,url_prefix="/account")

执行刷新页面的命令 python manager.py  

🔥  templates 模版代码解释🔥 

common 包下面是同一布局的文件

layout_main.html 布局文件对应左边导航栏选项 (仪表盘、账号管理、美餐管理、会员列表、财务管理、统计列表)

 

layout_main.html 布局文件对应顶部用户信息(姓名、手机号码、修改密码、退出、) 

 

 layout_main.html 布局文件 定义另一个嵌入布局的入口

{% block content %}{% endblock %}

点击网址左边 对应的导航栏选项 (仪表盘、账号管理、美餐管理、会员列表、财务管理、统计列表

切换右边的内容 , 右边的内容不符就是嵌入不同选项的入口

 

账号管理页面 

查看  templates/account/index.html 文件, 发现头部引入了 common/layout_main.html

通过  {% block content %} 开始标签 , {% endblock %} 作为结束 , 在此中间嵌入账号管理的内容部分布局

🔥 会员管理页面 🔥 

web/controllers下面创建 

财务管理、美食管理、 会员管理、统计管理 控制器

编辑 www.py 文件 ( 导入财务管理、美食管理、 会员管理、统计管理 控制器 )

使用register_blueprint 蓝图注册 财务管理、美食管理、 会员管理、统计管理 控制器 的地址

# _*_ coding: utf-8 _*_

from application import app
from web.controllers.index import route_index
from web.controllers.user.User import route_user
from web.controllers.static import route_static
from web.controllers.account.Account import route_account
#财务管理
from web.controllers.finance.Finance import route_finance
#美食管理
from web.controllers.food.Food import route_food
#会员管理
from web.controllers.member.Member import route_member
#统计管理
from web.controllers.stat.Stat import route_stat

app.register_blueprint( route_index,url_prefix = "/" )
app.register_blueprint(route_user,url_prefix="/user")
app.register_blueprint(route_static,url_prefix="/static")
app.register_blueprint(route_account,url_prefix="/account")
app.register_blueprint(route_finance,url_prefix="/finance")
app.register_blueprint(route_food,url_prefix="/food")
app.register_blueprint(route_member,url_prefix="/member")
app.register_blueprint(route_stat,url_prefix="/stat")

 

 

 

下载案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/97911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 Spring Cloud 的微服务脚手架

基于 Spring Cloud 的微服务脚手架 作者&#xff1a; Grey 原文地址&#xff1a; 博客园&#xff1a;基于 Spring Cloud 的微服务脚手架 CSDN&#xff1a;基于 Spring Cloud 的微服务脚手架 本文主要介绍了基于 Spring Cloud Finchley 和 Spring Boot 2.0.x 版本的微服务脚…

2006-2019年280个地级市绿色全要素生产率含原始数据和测算结果

2006-2019年280个地级市绿色全要素生产率含原始数据和测算结果 1、时间&#xff1a;2006-2019年 2、来源&#xff1a;原始数据来自各省NJ 城市NJ、各市NJ、各市社会统计GB 3、范围&#xff1a;包括280个地级市 4、指标包括&#xff1a; 投入&#xff1a;地级市市辖区从业人…

Spring Boot热部署配置

⭐️前言⭐️ 在我们进行Spring Boot项目的编写过程中&#xff0c;会有局部的代码&#xff0c;发生一些变动&#xff0c;这时候&#xff0c;我们只有将项目重启&#xff0c;发生变动的代码才能够生效&#xff0c;为了解决这个问题&#xff0c;我们可以设置Spring Boot热部署&a…

ClassLoader 隔离性的基石是namespace,证明给你看

一、背景 朋友&#xff1a;在我知识体系中ClassLoader的双亲委派机制是流畅丝滑的&#xff0c;可是看到通过委派执行类加载来保障这种分治能力&#xff0c;进而达到了类资源的隔离性突然就感觉有点陌生和排斥呢&#xff1f; 我&#xff1a;类的命名空间有了解嘛&#xff1f; …

Tableau可视化设计案例-01Tableau简介,条形图与直方图

文章目录Tableau可视化设计案例Tableau简介&#xff0c;条形图与直方图Tableau界面介绍Tableau绘制条形图2.1条形图1 各地区酒店数量2.2条形图2&#xff1a;各地区酒店均价2.3堆积图&#xff1a;价格等级堆积图Tableau绘制直方图3.1直方图概念与用途3.2创建评分直方图Tableau饼…

python中的split函数

返回数据类型为list # split以空格切片,返回数据类型为list a"I LOVE Python" print(a.split(" ")) print(type(a.split(" ")))运行结果如下&#xff1a; 可指定分隔符 # split以.切片,返回数据类型为list b"www.baidu.com" print…

Python工程师培训要多久?

Python作为目前备受初学者青睐的编程语言&#xff0c;学习的难度与其他语言相比&#xff0c;还是比较容易入门的。当然&#xff0c;一些零基础的初学者想要一两个月就能速成Python&#xff0c;还是不太可能的。尤其是想在学完之后应聘相关岗位&#xff0c;就算是最快的学习方式…

Dubbo 4 Dubbo 高级特性 4.2 Dubbo 常用高级配置 4.2.4 重试 4.2.5 多版本

Dubbo 【黑马程序员Dubbo快速入门&#xff0c;Java分布式框架dubbo教程】 4 Dubbo 高级特性 文章目录Dubbo4 Dubbo 高级特性4.2 Dubbo 常用高级配置4.2.4 重试4.2.5 多版本4.2 Dubbo 常用高级配置 4.2.4 重试 之前我们已经完成 了超时的配置 而且知道 了如果服务提供方 和消…

Linux 中存在太多的垃圾文件?

不知道大家是否也跟我一样&#xff0c;是一只要把的自己电脑文件安排的条理有序&#xff0c;把没用的文件会及时删掉的程序猿呢&#xff1f;如果是的话&#xff0c;那么我们可以愉快地探讨下文章的内容。如果不是的话&#xff0c;你也可以留下来凑凑热闹嘛(>- 下面要介绍的是…

基于java+springmvc+mybatis+vue+mysql的邮票鉴赏系统及实现

项目介绍 随着邮票行业的发展&#xff0c;邮票市场已经有了越来越多的爱好者加入。收藏邮票&#xff0c;也就成了邮票收藏爱好者一个有爱又恨的话题。没错&#xff0c;大量的邮票收藏确实是对知识面的增广和一种成就感的满足。但是面对越来越多的邮票。五花八门各种各样的邮票…

十四、CANdelaStudio入门-DID池

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的DID池,欢迎各位朋友订阅、评论,可以提…

【C++进阶】C++11新特性上篇(万字详解)

&#x1f387;C学习历程&#xff1a;入门 博客主页&#xff1a;一起去看日落吗持续分享博主的C学习历程博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 也许你现在做的事情&#xff0c;暂时看不到成果&#xff0c;但不要忘记&…

Dubbo 4 Dubbo 高级特性 4.2 Dubbo 常用高级配置 4.2.6 负载均衡

Dubbo 【黑马程序员Dubbo快速入门&#xff0c;Java分布式框架dubbo教程】 4 Dubbo 高级特性 文章目录Dubbo4 Dubbo 高级特性4.2 Dubbo 常用高级配置4.2.6 负载均衡4.2 Dubbo 常用高级配置 4.2.6 负载均衡 【举个栗子】 现在 同一个服务 提供者&#xff0c;我们把它 部署在了…

Dijkstra迪杰斯特拉算法

1.场景 用于计算一个节点到其他节点的最短路径&#xff0c;特点是由其实点位中心向外层扩展&#xff08;BFS思想&#xff09;&#xff0c;直至扩展到终点为止 2.认识 https://blog.csdn.net/weixin_57128596/article/details/126982769?ops_request_misc%257B%2522request%…

自动生成changelog

本文主要记录我如何在React项目中优雅的使用TypeScript&#xff0c;来提高开发效率及项目的健壮性。 项目目录及ts文件划分 由于我在实际项目中大部分是使用umi来进行开发项目&#xff0c;所以使用umi生成的目录来做案例。 . ├── README.md ├── global.d.ts ├── mo…

安全分析模型

安全分析模型自动化调优 MLOps&#xff08;Machine Learning Operations&#xff09;是一种人工智能 的工程实践&#xff0c;是面向机器学习项目的研发运营管理体系 。旨在实现 ML 管道的操作、ML 模型的部署和管理标准化&#xff0c;支持ML 模型的发布、激活、监控、性能跟踪…

Pytorch 学习之:关于 GPU 训练你必须知道的几件事

文章目录torchvision 下载的 pretrain 模型路径cuda 版本一定要适配多 cuda 训练 DataParallel 使用须知torchvision 下载的 pretrain 模型路径 使用 torchvision 来直接下载 pretrained 模型&#xff0c;有时候服务器的下载速度很慢&#xff0c;不如直接下载到本地之后传上去…

简单个人静态HTML网页设计作品 基于HTML+CSS+JavaScript仿小米手机网站 html静态在线购物商城网页制作

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

一种用于模拟电晕放电的高效半拉格朗日算法(Matlab代码实现)

目录 摘要 1 概述 2 数学模型与方法 3 讲解 3.1 测试1 3.2 测试2 3.3 测试3 3.4 测试4 4 Matlab代码实现 摘要 提出了一种无需通量校正的高效电晕放电模拟算法。称为位置-状态分离 (POSS) 方法的算法用于求解电晕放电建模中通常存在的以对流为主的连续性方程。所…

Java项目:ssm实验室预约维修管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为超级管理员、管理员、学生三种角色&#xff0c; 超级管理员角色包含以下功能&#xff1a; 通知管理、用户管理、实验室管理、实验室预…