当前位置 : 主页 > 编程语言 > python >

python调用mysql的一些用法总结

来源:互联网 收集:自由互联 发布时间:2022-09-02
自己在学习python的过程中,遇到调用数据库的场景主要有两种:1、在Django中通过API接口获取mysql中的数据,2、平时写脚本时直接通过python来进行mysql的数据读取和写入操作。 第一种Dj

自己在学习python的过程中,遇到调用数据库的场景主要有两种:1、在Django中通过API接口获取mysql中的数据,2、平时写脚本时直接通过python来进行mysql的数据读取和写入操作。

第一种Django下的部分用法总结

在Django框架中,对于数据库的账号密码配置文件在settings.py下,自己常用的几个API接口调用用法如下:

以下为Django中models.py中的内容
from django.db import models
# Create your models here.
class Server(models.Model):
中间省略
@staticmethod
def get_by_server(servername,numc):
apps = Server.objects.get(appuse=servername, env=numc) #获取一条指定的数据
apps = Server.objects.filter(status=Server.STATUS_NORMAL) #过滤出符合该条件的所有数据
return apps
'''个人总结,#classmethod一般用于view中的class类中引用,用法与staticmethod不太一样'''
@classmethod
def get_some(cls):
num = cls.objects.filter(status=cls.STATUS_SHOW)
return num

class envlist(models.Model):
env_name = models.CharField(max_length=200)
env_description = models.CharField(max_length=200)

def __str__(self):
return self.env_name
class Meta:
verbose_name = verbose_name_plural = '环境列表'
@classmethod
def get_env_list(cls):
queryset = envlist.objects.all()
return queryset #获取所有的数据

然后在django的View.py中进行调用,以下为views.py部分代码
class CommonViewMixin :
def get_context_data(self, **kwargs) :
context = super(CommonViewMixin, self).get_context_data(**kwargs)
context.update({
'sidebars' : SideBar.get_all(),
'navs' : navs.get_all(),
})

return context

class IndexView(CommonViewMixin, ListView) :
queryset = envlist.get_env_list()
template_name = 'blog/list.html'

class APPFUNCView(IndexView) :
def get_context_data(self, **kwargs) :
context = super().get_context_data(**kwargs)
ENVS = self.queryset.exclude(id__in=[3]) #从models.py中获取的数据中排除第3个
context.update({
'ENVS' : ENVS, #在context中增加环境参数传递给下面的blog/IPRedirect.html
})
return context
template_name = 'blog/IPRedirect.html'

第二种就是直接用python去执行sql,一般写脚本中用的比较多

# D:\Program Files (x86)\Python36
# -*- coding=utf-8 -*-
import pymysql.cursors


def change(username, newpass) :
# 连接数据库
conn = pymysql.Connect(
user="testuser", #mysql账号
password="testpassword", #mysql密码
port=3306, #mysql 端口
host="10.50.32.133", #mysql IP地址
db="webviews", #mysql schema
charset="utf8"

)
cursor = conn.cursor()

sqlupdate = "update webviews.users set password = '%s' where username = '%s';" % (newpass, username)

cursor.execute(sqlupdate)
conn.commit()
query = "SELECT * FROM webviews.users where username = '%s';" % username
cursor.execute(query)
result = cursor.fetchone()
# result=cursor.fetchall()

print(result)
cursor.close()
conn.close()

return result
if __name__ == '__main__':
change('test123', 'b@jj@v!789')


上一篇:DAY1 python基础
下一篇:没有了
网友评论