简单flask实现增删改查——python

文件的层级关系:

  • work
    • control

      • blueprint.py
    • dao

      • basedao.py
      • pymysql.json
      • userdao.py
    • entity

      • user.py
    • service

      • userservice.py
    • static

      • css
      • js
    • templates

      • index.html
      • login.html
      • message.html
      • regist.html
    • app.py


app.py

from flask import Flask,render_template

from controll.blueprint import blue

app = Flask(__name__)
app.config['DEBUG']=True
app.config['SECRET_KEY'] = 'AABBqwtgdger'
# 蓝图的差分
app.register_blueprint(blue)
@app.route('/')
def hello_world():
    return render_template('index.html')
# 整个程序的入口
if __name__ == '__main__':
    app.run(debug=True)

blueprint.py

from flask import Blueprint,request,render_template,session,Response
from service.userservice import UserService
import json
from entity.user import User
blue = Blueprint('blue',__name__)
userService = UserService()  # 数据操作层
# 控制层
@blue.route('/login.do',methods=['POST','GET'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        userDate = request.get_data() # 获取ajax传来的数据
        userDict = json.loads(userDate)
        name = userDict.get('username')
        passwd = userDict.get('password')
        result = userService.findUserByUserName(name)  # 数据的操作
        dicts = {
   }
        if result and result[0][2]==passwd: # 进行密码和姓名的验证
            session['username'] = name
            dicts = {
   'code': 1}
        else:
            dicts = {
   'code': 0}
        return json.dumps(dicts)

# 注销按钮
@blue.route('/logout.do',methods=['POST','GET'])  # url路由
def logout():
    session.clear()
    resp = Response(render_template('index.html'))  # 对模板的渲染
    return resp

@blue.route('/regist.do',methods=['POST','GET'])  # url路由
def regist():
    if request.method == 'GET':
        resp = Response(render_template('regist.html'))
        return resp
    else:
        userDate = request.get_data()
        userDict = json.loads(userDate)
        name = userDict.get('username')
        result = userService.findUserByUserName(name)
        dicts = {
   }
        if result:
            dicts = {
   'code': 1}
        else:
            dicts = {
   'code': 0}
        return json.dumps(dicts)
# 注册界面
@blue.route('/adduser.do',methods=['POST','GET'])  # url路由
def adduser():
    if request.method == 'GET':
        resp = Response(render_template('regist.html'))
        return resp
    else:
        user = User()
        user.username = request.form.get('username')
        user.userpwd = request.form.get('userpwd')
        user.usersex = request.form.get('sex')[0]
        user.userage = request.form.get('age')
        user.userqq = request.form.get('qq')
        user.userphone = request.form.get('phone')
        hobby = request.form.getlist('hobby')
        flage = request.form.get('flages')
        n = ''
        for i in hobby:
            n = n+i
        user.userhobby = n
        result = userService.createUser(user)
        print(result)

        if (result > 0):
            # return render_template('alert(注册成功')
            return '注册成功'
        else:
            return '注册失败'



@blue.route('/message.do', methods=['POST', 'GET'])  # url路由
def message():
    if request.method == 'GET':
        user = User()
        userlist = userService.findUserList(user)
        return Response(render_template('message.html',userlist=userlist,flage=True))

    else:
        dicts = {
   'code': 1}

        return json.dumps(dicts)

@blue.route('/confirm1.do', methods=['POST', 'GET'])  # url路由
def comfirm1():
    userDate = request.get_data()
    userDict = json.loads(userDate)

    userid = userDict.get('userid')
    username = userDict.get('username')
    userpwd = userDict.get('userpwd')
    userage = userDict.get('userage')
    usersex = userDict.get('usersex')
    userqq = userDict.get('userqq')
    userphone = userDict.get('userphone')
    userhobby = userDict.get('userhobby')


    user = User()
    user.userid=userid
    user.username=username
    user.userpwd=userpwd
    user.userage = userage
    user.usersex = usersex
    user.userqq = userqq
    user.userphone=userphone
    user.userhobby=userhobby


    result = userService.updateUser(user)
    dicts = {
   }
    if result:
        dicts = {
   'code': 1}
    else:
        dicts = {
   'code': 0}
    return json.dumps(dicts)
# 删除按钮
@blue.route('/dell.do', methods=['POST', 'GET'])  # url路由
def dell():
    userDate = request.get_data()
    userDict = json.loads(userDate)

    userid = userDict.get('userid')
    result = userService.removeUser(userid)
    dicts = {
   }
    if result:
        dicts = {
   'code': 1}
    else:
        dicts = {
   'code': 0}
    return json.dumps(dicts)
#
def obj_json(obj):
    return {
   
            'userid' : obj.userid,
            'username' : obj.username,
            'usersex' : obj.usersex,
            'userqq' : obj.userqq,
            'userphone' : obj.userphone,
            'userhobby' : obj.userhobby,
            'userpwd' : obj.userpwd,
            'userage' : obj.userage
    }
@blue.route('/searchinfo.do', methods=['POST', 'GET'])  # url路由
def searchinfo():
    userDate = request.get_data()
    userDict = json.loads(userDate)

    username = userDict.get('username')
    usersex = userDict.get('usersex')

    # 换成一个字典
    user = User()
    user.username = username
    user.usersex = usersex

    result = userService.findUserList(user)

    if result:
        return json.dumps(result,default=obj_json)  # json默认无法对user对象进行操作 定义obj_json方法进行格式规定
        # dicts = {'code': 1, 'user': result}
    else:
        return json.dumps({
   'code': 0})
        # dicts = {'code': 0}


basedao.py

# 引入pymysql
import pymysql
import json
import logging
import os

class BaseDao(): # DAO: database access object

    def __init__(self, configFile='pymysql.json'):
        self.__connection = None
        self.__cursor = None
        self.__config = json.load(open(os.path.dirname(__file__) + os.sep + configFile, 'r'))  # 通过json配置获得数据的连接配置信息
        print(self.__config)
        pass

    # 获取数据库连接的方法
    def getConnection(self):
        # 当有连接对象是,直接返回连接对象
        if self.__connection:
            return self.__connection
        # 否则通过建立新的连接对象
        try:
            self.__connection = pymysql.connect(**self.__config)
            return self.__connection
        except pymysql.MySQLError as e:
            print("Exception:" + str(e))
            pass
        pass

    # 用于执行sql语句的通用方法 # sql注入
    def execute(self, sql, params=None):
        try:
            self.__cursor = self.getConnection().cursor()
            # execute在执行delete update  insert 返回int值,返回的对数据里的数据修改的条数
            result = self.__cursor.execute(sql, params)
            return result
        except (pymysql.MySQLError, pymysql.DatabaseError, Exception) as e:
            print("出现数据库访问异常:" + str(e))
            self.rollback()
            pass
        finally:
            pass
        pass

    def fetch(self):
        if self.__cursor:
            return self.__cursor.fetchall()
        pass

    def commit(self):
        if self.__connection:
            self.__connection.commit()
        pass

    def rollback(self):
        if self.__connection:
            self.__connection.rollback()
        pass

    def getLastRowId(self):
        if self.__cursor:
            return self.__cursor.lastrowid
        pass

    def close(self):
        if self.__cursor:
            self.__cursor.close()
        if self.__connection:
            self.__connection.close()
        pass

    pass



userdao.py

from dao.basedao import BaseDao
class UserDao(BaseDao):
    def findUserByUserName(self,userName):
        try:
            sql = "select * from user where user_name=%s"
            self.getConnection()
            self.execute(sql,(userName,))
            result = self.fetch()
            return result
        finally:
            self.close()

    def findUserByUserId(self, userid):
        try:
            sql = "select * from user where user_id=%s"
            self.getConnection()
            self.execute(sql, (userid,
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
管理系统,作为一种高效的企业运营管理工具,旨在通过集成化、系统化的手段,对组织内部的各类资源进行规划、协调、控制和优化,以实现企业战略目标,提升运营效率,增强核心竞争力。以下是对管理系统的详细介绍: 一、定义与构成 管理系统是指由硬件设备、软件应用、数据资源、人员以及相关管理制度共同构建的,用于处理、监控、分析和决策各类业务活动的综合信息系统。它通常包括以下几个核心组成部分: 数据采集模块:负责从各类业务环节中实时、准确地收集信息,形成企业的基础数据资源。 数据分析模块:运用统计学、人工智能等技术对数据进行深度挖掘和智能分析,提供决策支持。 业务流程管理模块:设计、执行、监控和优化业务流程,确保各项任务按照预定规则高效运转。 决策支持模块:基于数据分析结果,为管理者提供直观的可视化报告,辅助其进行科学决策。 用户界面与交互模块:提供友好的人机交互界面,方便用户操作使用。 二、主要类型与功能 管理系统根据所针对的管理对象和领域,可分为多种类型,如: 人力资源管理系统(HRM):涵盖招聘、培训、绩效考核、薪酬福利等人力资源全流程管理,提升人才效能。 客户关系管理系统(CRM):集中管理客户信息,优化销售、营销和服务流程,提升客户满意度和忠诚度。 供应链管理系统(SCM):整合供应商、制造商、分销商、零售商等供应链各环节,实现物流、资金流、信息流的协同运作。 企业资源计划系统(ERP):对企业内部财务、生产、采购、库存、销售等各项资源进行全面集成管理,提高整体运营效率。 项目管理系统(PM):对项目全生命周期进行规划、跟踪、控制,确保项目按时、按质、按预算完成。 三、价值与优势 提高效率:自动化工作流程、标准化业务操作,显著减少人工干预,提升工作效率。 优化决策:实时数据分析与预测,提供精准的决策依据,助力管理层做出明智选择。 资源整合:打破部门壁垒,实现信息共享,优化资源配置,降低运营成本。 合规风控:内置法规遵循机制,强化内部控制,降低经营风险。 持续改进:通过对系统数据的持续监控与分析,驱动业务流程持续优化,促进企业创新与发展。 总的来说,管理系统作为现代企业管理的重要工具,以其强大的数据处理能力、智能化的决策支持和高效的业务流程管理,有力推动了企业的数字化转型,助力企业在日益激烈的市场竞争中保持竞争优势。
要创建一个Python FlaskMySQL增删改查API,你需要安装一些依赖模块。你可以使用pip来安装这些模块。首先,使用pip安装以下依赖模块:python-mpipinstallflask==1.1.2、python-mpipinstallflask_migrate==2.7.0、python-mpipinstallflask_sqlalchemy和python-mpipinstallflask_script。\[1\] 接下来,你需要在app.py文件中逐步添加以下代码。首先导入一些要用到的库,包括pymysqlFlask、SQLAlchemy、make_response、request和Flask-Cors。然后,你可以使用Flask和SQLAlchemy来创建一个Flask应用和一个数据库连接。最后,你可以使用Flask-Cors来处理跨域请求。\[2\] 如果你想一次性安装所有依赖模块,你可以使用以下命令:pip install -r req_new.txt。在req_new.txt文件中列出了所有需要安装的模块,包括FlaskFlask-Caching、Flask-Cors、Flask-Migrate、Flask-RESTful、Flask-Script、Flask-SQLAlchemy、MarkupSafe、PyJWT、PyMySQL、qiniu和redis。\[3\] 这样,你就可以开始编写Python FlaskMySQL增删改查API了。 #### 引用[.reference_title] - *1* [Python + Flask ORM实现增删改查](https://blog.csdn.net/weixin_41754309/article/details/125275931)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Flask+mysql 实现增删改查接口开发+测试(图文教程附源码)](https://blog.csdn.net/qq_29720657/article/details/124522898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Flask项目创建及数据库增删改查](https://blog.csdn.net/li_xiao_guang/article/details/127155857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值