python连接数据库

python连接数据库

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 打开数据库连接
db = MySQLdb.connect("localhost", "username", "pwd", "TESTDB", charset='utf8' )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()

print "Database version : %s " % data

# 关闭数据库连接
db.close()
  • fetchone():该方法获取下一个查询结果集。结果集是一个对象
  • fetchmany(int num): 参数是几就返回前几条
  • fetchall():接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
# 发生错误时回滚
   db.rollback()
  • executemany(): 插入多个数据

一个数据库小项目的部分demo

为了完成数据库的大作业,整了个Django后端框架,但是没用他提供的一些连接数据库的方法,用了之前暴力的直接连接数据库的方法。纯粹是之前为了省事。。

  • 微信小程序前端
login(){
    var that = this
    console.log("login",this.data.loginId,this.data.password)
    if(this.data.loginId&&this.data.password){
      console.log("信息完整")
      wx.request({
        url: 'http://127.0.0.1:8000/manager/login/', 
        method: "POST",
        data:{   //数据
          "managerID": that.data.loginId,
          "managerPw":that.data.password
        },
        success (res) {
          console.log("res.data: ",res.data)
          if(res.data.status == "fail"){
            wx.showToast({
              title: '账号或密码错误',
              mask: true,
              icon: "error",
              duration:1200
            })
            return
          }
          var name = res.data.data.ManagerName
          wx.showToast({
            title: '欢迎你'+name,
            icon: "none",
            duration:1200,
          }),
          that.setData({
            login: true
          })
          wx.showTabBar({
            animation: true,
          })
        },
        fail(error){
          console.log("error: ",error)
        }
      })
    } else{
      wx.showToast({
        title: '请完善账号密码',
        mask: true,
        duration: 1200,
        icon: "error"
      })
    }
  },
  • 后端
# 管理人员登录
class Login(APIView):
    def post(self,request,*argc,**kwargs):
        print(request.data)
        cur = db.cursor()
        try:
            select_sql = "select * from manager where ManagerID = " + request.data["managerID"]
            print(select_sql)
            num = cur.execute(select_sql)
            dataSet = cur.fetchone()
        except Exception as e:
            print("管理人员登录失败:", e)
            return Response({"status": "fail"})
        else:
            if num == 0:
                print("数据库不存在该管理人员")
                return Response({"status": "fail"})

            if request.data["managerPw"] == dataSet[2]:
                result = {}
                result['ManagerID'] = dataSet[0]
                result['ManagerName'] = dataSet[1]
                print({"status": "success", "data": result})
                return Response({"status": "success", "data": result})
            else:
                print("登录密码错误")
                return Response({"status": "fail"})
  • 接口
请求地址:http://127.0.0.1:8000/manager/login
请求方法:POST
请求参数:managerID,managerPw
返回数据:
登录失败
{"status": "fail"}
登陆成功
{
    'status':'success',
    'data':
    {
        'ManagerID':'1231',
        'ManagerName':'Jun'
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值