视图函数中进行sql查询
import pymysql
# 创建连接 use_unicode=true指定字符的编码、解码格式,进行自动编码解码,mysql数据库的编码格式为gbk,而项目数据库为utf-8
# 使用与django和falsk框架
db=pymysql.connect(host='127.0.0.1',user='root',password='',port=3306,database='t1',charset='utf8',use_unicode=True)
def func():
sql='select * from class'
try:
# 获得course对象
corsor=db.cursor()
# 执行sql语句
corsor.execute(sql)
# 获得查询结果
results=corsor.fetchall()
l=list(results)
print(l)
return len(l)
except Exception as e:
return str(e)
if __name__ == '__main__':
print(func())
防止sql注入
from pymysql import *
def main():
find_name = input("请输入物品名称:")
# 创建Connection连接
conn = connect(host='localhost',port=3306,user='root',password='',database='t1',charset='utf8')
# 获得Cursor对象
cs1 = conn.cursor()
# 不使用防护措施 输入 " or 1=1 or " 那么就返回数据库数据,造成数据库泄露
# count=cs1.execute("select * from course where cname='%s'" % find_name)
# 构造查询参数 -- 方式sql注入 execute模块会自动为要查询的匹配引号和双引号
params=[find_name]
count=cs1.execute('select * from course where cname=%s',params)
# 注意:
# 如果要是有多个参数,需要进行参数化
# 那么params = [数值1, 数值2....],此时sql语句中有多个%s即可
print(count)
result=cs1.fetchall()
print(result)
# 关闭corsor对象
cs1.close()
# 关闭connection对象
conn.close()
if __name__ == '__main__':
main()
输入要查的字段会显示响应数据内容。