Python - MySql доступ для вставки данных в БД - PullRequest
2 голосов
/ 02 марта 2011

Я создал приложение Django. Теперь я пытаюсь заполнить некоторые данные в табло базы данных SQL EmployeeDetails, используя обычный скрипт на python.Но я не могу вставить данные в БД.Я думаю, потому что мой БД не соединяется с этим внешним скриптом 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()

Мой файл settings.py в Django:

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 ]

3 голосов
/ 02 марта 2011
  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')

Вам нужно будет выполнить это с пакетом Django в вашем пути Python и с правильно установленной переменной среды DJANGO_SETTINGS_MODULE. Как-то так у меня обычно работает:

PYTHONPATH=. DJANGO_SETTINGS_MODULE=settings python my_script.py

Но этот вызов может сильно зависеть от настроек вашей системы.

0 голосов
/ 02 марта 2011

Установили ли вы Поддержка MySQL для python ?

В случае, если вы используете Windows, проще всего будет использовать скомпилированный дистрибутив - этотограничено Python 2.6.Я не нашел ни одной предварительно скомпилированной версии для более высоких версий Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...