Python - MySql 数据库插入数据的方法

2 投票
2 回答
1240 浏览
提问于 2025-04-16 12:48

我创建了一个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
  1. 别去导入 MySQLdb。直接用 Django 就行了。

  2. 也不要直接连接数据库。用 Django 来处理。

  3. 如果你要根据模型创建对象,记得要导入这些模型。只要你写得对,它们会自动导入所有需要的 Django 模块。

  4. 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

不过,这个调用可能会根据你的系统设置有很大不同。

撰写回答