python连接远程MySQL数据库

时间:2021-08-13 13:15:18

背景:djiango框架,python 2.7.3,数据库 (MySQL、Sqlite)

1、连接远程数据库:

方法一:
view.py中,添加引用和sql语句。

import MySQLdb
conn = MySQLdb.connect(host='192.168.10.70', user='root', passwd='123456', db='test', port=3306)
sql = "select type,count(type) from analy_user_loginfo group by type"
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()

方法二:
setting.py中,添加默认设置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER':'root',
'PASSWORD':'123456',
'HOST':'192.168.10.70',
'PORT':'',
}
}

userinfo为我在models.py定义的一个class,即用djiango建立的project中的一个app,add_at为userinfo中字段;类似工程配置,请参考“djiango前端显示:安装包上传下载管理”。

regcount = userinfo.objects.filter(add_at__gt=cur_day, add_at__lt=end_day).count()

for item in userinfo.objects.raw("SELECT * FROM userinfo where add_at like '2015%%'"):

有可能会提示userinfo的字段找不到,需要在工程目录下启动命令框运行:

python manage.py makemigrations project_name
python manage.py migrate

2、连接本地数据库:

view.py中:

import sqlite3

直接使用绝对路径,相对路径暂未了解,还望大神来补充;

conn = sqlite3.connect('D:/lrsvr/support/data/lrgis_online_stat.db')
sql = "select type,count(type) from analy_user_loginfo group by type"
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()