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'
}
}