1969python房屋租赁管理系统mysql数据库Flask结构BootStrap布局计算机软件工程网页

一、源码特点
    python Flask房屋租赁管理系统是一套完善的web设计系统mysql数据库 ,对理解python编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。

python flask 房屋租赁管理系统


    开发环境pycharm
    mysql 5.0 到5.5
    依赖包 Flask1.1.4
          pymysql0.8.0
        mysqlclient 1.4.6

二、功能介绍


(1)员工管理:对员工信息进行添加、删除、修改和查看
(2)客户管理:对客户信息进行添加、删除、修改和查看
(3)小区管理:对小区信息进行添加、删除、修改和查看
(4)房源管理:对房源信息进行添加、删除、修改和查看
(5)看房管理:对看房信息进行添加、删除、修改和查看
(6)交易方式管理:对交易方式信息进行添加、删除、修改和查看
(7)订单管理:对订单信息进行添加、删除、修改和查看
(8)财务结算管理:对财务结算信息进行添加、删除、修改和查看
(9)信息统计:包括业务统计,交易额年度和月度统计,房源信息统计
(10)用户登录、退出、个人信息修改

数据库设计

CREATE TABLE `yuangong` (
`ygid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',
`qx` VARCHAR(40) default NULL COMMENT '权限',  PRIMARY KEY  (`ygid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `kehu` (
`khid` int(11) NOT NULL auto_increment,
`khxm` VARCHAR(40) default NULL COMMENT '客户姓名',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`djsj` VARCHAR(40) default NULL COMMENT '登记时间',
`djr` VARCHAR(40) default NULL COMMENT '登记人',
`bz` VARCHAR(40) default NULL COMMENT '备注',  PRIMARY KEY  (`khid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `xiaoqu` (
`xqid` int(11) NOT NULL auto_increment,
`xqmc` VARCHAR(40) default NULL COMMENT '小区名称',
`dz` VARCHAR(40) default NULL COMMENT '地址',
`bz` VARCHAR(40) default NULL COMMENT '备注',  PRIMARY KEY  (`xqid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `fangyuan` (
`fyid` int(11) NOT NULL auto_increment,
`fymc` VARCHAR(40) default NULL COMMENT '房源名称',
`dz` VARCHAR(40) default NULL COMMENT '地址',
`xq` VARCHAR(40) default NULL COMMENT '小区',
`hzxm` VARCHAR(40) default NULL COMMENT '户主姓名',
`hzdh` VARCHAR(40) default NULL COMMENT '户主电话',
`djsj` VARCHAR(40) default NULL COMMENT '登记时间',
`djr` VARCHAR(40) default NULL COMMENT '登记人',
`zt` VARCHAR(40) default NULL COMMENT '状态',
`sj` VARCHAR(40) default NULL COMMENT '售价',
`cjj` VARCHAR(40) default NULL COMMENT '成交价',  PRIMARY KEY  (`fyid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

代码设计


@app.route("/out/", methods=["POST","GET"])  # 注意post大写,因为post是通过form.data传数据所以下面用request.form
def out():session.clear()return '<script>location.href="/";</script>'# 返回到添加操作的界面
@app.route ("/yuangong/add/")
def yuangongadd():return render_template ('/yuangong/yuangongadd.html')# 添加 员工信息页面
@app.route("/yuangong/save/", methods=["POST"])  # 注意post大写,因为post是通过form.data传数据所以下面用request.form
def yuangongsave():data = dict(request.form)print(data)yhm = request.form.get("yhm") #用户名mm = request.form.get("mm") #密码xm = request.form.get("xm") #姓名lxdh = request.form.get("lxdh") #联系电话lxdz = request.form.get("lxdz") #联系地址qx = request.form.get("qx") #权限cursor = db.cursor()db.ping(reconnect=True)sql = "SELECT * FROM yuangong WHERE yhm = '" + yhm + "'"cursor.execute(sql)result = cursor.fetchone()if result:# 用户名已存在return '<script>alert("添加失败、用户名重复");location.href="/yuangong/add/";</script>'else:# 用户名不存在,唯一sql = "insert into yuangong(yhm,mm,xm,lxdh,lxdz,qx) values('" + yhm + "','" + mm + "','" + xm + "','" + lxdh + "','" + lxdz + "','" + qx + "')";print(sql)db.ping(reconnect=True)cursor.execute(sql)db.commit()  # 提交数据库db.close()return '<script>alert("添加成功");location.href="/yuangong/add/";</script>'#  员工信息列表页面
@app.route('/yuangong/list/',methods=['POST','GET'])
def yuangonglist():cursor = db.cursor()db.ping(reconnect=True)sql= "select * from yuangong where 1=1 "yhm = request.form.get("yhm") #用户名if yhm!="" and  yhm is not None:sql=sql+" and yhm like '%"+yhm+"%'"print(sql)mm = request.form.get("mm") #密码if mm!="" and  mm is not None:sql=sql+" and mm like '%"+mm+"%'"print(sql)xm = request.form.get("xm") #姓名if xm!="" and  xm is not None:sql=sql+" and xm like '%"+xm+"%'"print(sql)lxdh = request.form.get("lxdh") #联系电话if lxdh!="" and  lxdh is not None:sql=sql+" and lxdh like '%"+lxdh+"%'"print(sql)lxdz = request.form.get("lxdz") #联系地址if lxdz!="" and  lxdz is not None:sql=sql+" and lxdz like '%"+lxdz+"%'"print(sql)qx = request.form.get("qx") #权限if qx!="" and  qx is not None:sql=sql+" and qx like '%"+qx+"%'"print(sql)cursor.execute(sql)rows = cursor.fetchall()columns = cursor.description#print(rows)db.commit()db.close()results = [{columns[i][0]: value for i, value in enumerate(row)} for row in rows]return render_template('/yuangong/yuangonglist.html',mp=results)#  员工信息删除
@app.route('/yuangong/delete/<string:id>', methods=['GET'])
def yuangongdelete(id):cursor = db.cursor()db.ping(reconnect=True)sql = "delete from  yuangong where ygid='"+id+"'"print(sql)cursor.execute(sql)db.commit()  # 提交数据库db.close()return '<script>alert("删除成功");location.href="/yuangong/list/";</script>'


三、注意事项
    1、管理员账号:admin密码:admin 数据库配置文件db.py  更改数据库配置
    2、开发环境pycharm,数据库为mysql5.0~5.5,使用python语言开发。
    3、数据库文件名是flaskhouse.sql ,系统名称flaskhouse
    4、系统首页地址:http://127.0.0.1:5000/

四 系统实现

需要源码 其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

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

相关文章

SpringBoot 项目,三种方式实现打印 sql 日志

方式一&#xff1a;指定mybatis日志级别 # application.yml mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 等价于application.properties mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl方式二、Mybatis-Plus…

酱香型白酒派系介绍

酱香型白酒作为中国传统白酒的重要流派&#xff0c;以其独特的酱香和复杂的酿造工艺而著称。在酱香型白酒中&#xff0c;形成了多个派系&#xff0c;各具特色。 以下是关于北派、茅派、川派和黔派等各个派系的详细介绍。 一、北派 地理位置&#xff1a;主要产于秦岭和淮河以…

AWS无服务器 应用程序开发—第十五章 CI/CD

创建一个针对 AWS Lambda 的 CI/CD 管道&#xff0c;可以大大提高开发和部署的效率和可靠性。以下是一个完整的示例&#xff0c;包括从 CodeCommit 开始的代码管理、使用 CodeBuild 进行单元测试、使用 CodePipeline 进行持续集成和持续部署 (CI/CD) 的具体步骤。 步骤 1&…

记一次通过脚本来实现自定义容器的自动重启

通过脚本来实现自定义容器的自动重启 1. 场景还原2. 自定义启动脚本3. 使用自定义脚本来作为容器启动的脚本4. 制作自定义脚本作为入口点的新镜像5. 测试新镜像启动是否走自定义启动脚本 1. 场景还原 现在我有一个自定义的Docker镜像&#xff0c;是基于基础镜像来构建的带有多…

【React】React 的StrictMode作用是什么,怎么使用?

React的<StrictMode>是一个用于在开发环境中检测潜在问题的工具,它可以帮助开发者在开发阶段识别并解决一些常见的编码问题,从而提高代码质量和应用的可靠性。以下是<StrictMode>的详细作用和使用方法: 作用 检测潜在问题:<StrictMode>会启用一些额外的…

Windows 图像处理组件(WIC)读写位深度24位的 bmp 文件

我写了类封装了一下。只是作业需要&#xff0c;缺少错误处理。 #include <wincodec.h>enum PixColor { B, G, R };struct ComEnv {ComEnv(){CoInitialize(nullptr);CoCreateInstance(CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&fac));…

一文了解HarmonyOSNEXT发布重点内容

华为在2024年6月21日的开发者大会上正式发布了HarmonyOS NEXT版&#xff0c;这是华为在操作系统领域的一次重大飞跃&#xff0c;标志着华为在构建全场景智能生态方面的卓越成就。HarmonyOS NEXT版不仅带来了全新的系统架构和性能提升&#xff0c;还首次将AI能力融入系统&#x…

docker方式启动的redis如何使用自定义配置文件

本文参考这篇文章&#xff1a;参考 一、首先先下载默认的配置文件 wget http://download.redis.io/redis-stable/redis.conf 然后下载备份数据目录&#xff08;这个是用来做备份的&#xff0c;放在宿主机上&#xff09; mkdir -p /usr/local/docker/data 二、启动redis 下…

鸿蒙正在跨越“生态繁荣阈值”

作者 | 曾响铃 文 | 响铃说 先讲一个故事。 一个朋友曾经做了一个本地互联网装修平台&#xff0c;一边是装修服务的提供者——各工种工人等&#xff0c;一边是有装修需求的业主。这个平台要做独立生态&#xff0c;绕过旧有的装修公司渠道垄断&#xff0c;直接提供服务&#…

Android开发系列(六)Jetpack Compose之Box

Box是一个用来组合和控制子元素布局的组件。它可以在一个矩形区域内排列一个或多个子元素&#xff0c;并根据所提供的参数来控制它们的位置、大小和样式。 Box的功能类似传统的FrameLayout。 下面通过示例了解Box的使用方法&#xff0c;首先看一个最简单的示例&#xff0c;如下…

【自动驾驶】通过下位机发送的速度计算机器人在世界坐标系中的位置和朝向

文章目录 1. 计算X方向的位移原理公式解释2. 计算Y方向的位移原理公式解释3. 绕Z轴的角位移原理公式解释总结Robot_Pos.X+=(Robot_Vel.X * cos(Robot_Pos.Z) - Robot_Vel.Y * sin(Robot_Pos.Z)) * Sampling_Time; //Calculate the displacement in the X direction, unit: m /…

React useContext

useContext 允许父组件向其下层无论多深的任何组件提供信息&#xff0c;而无需通过 props 显式传递。 // 1. LevelContext.js 创建 context&#xff0c;将其从文件中导出 import { createContext } from react; export const LevelContext createContext(1);// 2. Section.j…

内核学习——4、并发、竞争、同步与互斥

linux中四种进程或线程同步互斥的方法&#xff1a; 1、临界区&#xff1a;多线程串行化访问公共资源的一段代码 2、互斥量&#xff1a;互斥对象只有一个 3、信号量&#xff1a;控制一个有限数量的用户资源&#xff0c;进程上下文&#xff0c;适合长时间访问共享资源情况 4、自…

永磁同步电机驱动死区补偿

1 死区效应及补偿 1. 1 死区效应 在本文的电机控制嵌入式系统中,逆变器为三 相电压型桥式逆变电路,如图 1 所示。 在理想状态 下,上桥臂和下桥臂的控制信号满足互补通断原则, 即上桥臂开通时,下桥臂关断,反之亦然。 而在实际 应用中,开关管的通断需要一定的开通时…

Nginx HTTPS(证书) 部署实战

一、申请证书与认证 要搭建https服务首先需有SSL证书&#xff0c;证书通常是在第三方申请&#xff0c;在阿里云的安全服务中有SSL证书这一项&#xff0c;可以在里面申请免费的证书。也可以在自己电脑中生成&#xff0c;虽然也能完成加密&#xff0c;但是浏览器是不认可的&…

【重要】《HTML趣味编程》专栏内资源的下载链接

目录 关于专栏 博主简介 专栏内资源的下载链接 写在后面 关于专栏 本专栏将持续更新,至少含有30个案例,后续随着案例的增加可能会涨价,欢迎大家尽早订阅!(订阅后可查看专栏内所有文章,并且可以下载专栏内的所有资源) 博主简介 ⭐ 2024年百度文心智能体大赛 Top1⭐…

华为仓颉语言介绍

文章目录 1.简介2.初识仓颉语言3.基本概念3.1标识符3.2程序结构3.3变量3.4表达式3.4.1if 表达式3.4.2while语句3.4.3do-while表达式3.4.4 for-in 表达式3.4.5 where条件3.4.6 break和continue 3.5 函数 1.简介 随着万物互联以及智能时代的到来&#xff0c;软件的形态将发生巨大…

Redisson-Lock-加锁原理

归档 GitHub: Redisson-Lock-加锁原理 Unit-Test RedissonLockTest 说明 源码类&#xff1a;RedissonLock // 加锁入口 Override public void lock() { lock(-1, null, false); }/*** 加锁实现 */ private void lock(long leaseTime, TimeUnit unit, boolean interruptib…

低代码平台教你两步把SQL直接转换为RESTful API

文章目录 前言一、简介1. 项目亮点2. 技术栈3. 核心功能4. 数据库设计二、搭建教程1. 目录结构2. 下载2.1 下载2.2 上传2.3 解压3. 配置3.1 创建并切换数据库3.2 执行sql文件3.3 修改配置文件4. 启动/停止4.1 启动4.2 停止4.3 重启5. 浏览器访问三、配置教程1. 数据源配置1.1 创…

Java面试题:讨论synchronized关键字和java.util.concurrent包中的同步工具,如Lock和Semaphore

在 Java 中&#xff0c;synchronized 关键字和 java.util.concurrent 包中的同步工具都是用来控制多线程环境下的并发访问&#xff0c;以防止数据竞争和确保线程安全。下面是对 synchronized 关键字和 java.util.concurrent 包中的一些同步工具的讨论&#xff0c;包括它们的特点…