Python - MySql 数据库插入数据的方法
我创建了一个Django应用程序。现在我想通过普通的Python脚本往SQL数据库的EmployeeDetails表里填充一些数据。但是我无法把数据插入到数据库中。我猜这可能是因为我的数据库没有和这个外部的Python脚本连接上。我对Python还很陌生,所以请帮我解决这个问题。这是我的Python脚本:
import MySQLdb
db=MySQLdb.connect("localhost","root","password123","employee")
def dumpdata():
userName = 'John'
designation = 'Software Engineer'
employeeID = '2312'
contactNumber = '9495321257'
project = 'cricket'
dateOfJoin = '2009-10-10'
EmployeeDetails(userName,designation,employeeID,contactNumber,project,dateOfJoin).save()
我在Django中的settings.py文件是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'employee', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'password123', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
我最终的需求是把插入数据的代码放在一个循环里,这样就可以往数据库里填充我需要的很多数据。有人能帮我看看我的代码,帮我解决这个问题吗?
2 个回答
0
你安装过 Python的MySQL支持了吗?
如果你是在Windows系统上,最简单的方法就是使用一个预编译的版本 - 这个版本只支持Python 2.6。我还没有找到支持更高版本Python的预编译版本。
3
别去导入 MySQLdb。直接用 Django 就行了。
也不要直接连接数据库。用 Django 来处理。
如果你要根据模型创建对象,记得要导入这些模型。只要你写得对,它们会自动导入所有需要的 Django 模块。
Model.objects.create() 是一个简便的方法,用来创建新对象并保存。
像这样:
from myapp.models import EmployeeDetails
def dumpdata():
userName = 'John'
designation = 'Software Engineer'
employeeID = '2312'
contactNumber = '9495321257'
project = 'cricket'
dateOfJoin = '2009-10-10'
EmployeeDetails.objects.create(userName,designation,employeeID,contactNumber,project,dateOfJoin)
或者这样(使用关键字参数意味着你不需要记住创建对象时参数的确切顺序):
EmployeeDetails.objects.create(
userName='John',
designation='Software Engineer',
employeeID='2312',
contactNumber='9495321257',
project='cricket',
dateOfJoin='2009-10-10')
你需要在 Python 的路径中运行 Django 包,并且正确设置你的 DJANGO_SETTINGS_MODULE
环境变量。通常像这样就能工作:
PYTHONPATH=. DJANGO_SETTINGS_MODULE=settings python my_script.py
不过,这个调用可能会根据你的系统设置有很大不同。