खोज…


MySQL / MariaDB

Django MySQL 5.5 और उच्चतर का समर्थन करता है।

कुछ पैकेज स्थापित करने के लिए सुनिश्चित करें:

$ sudo apt-get install mysql-server libmysqlclient-dev
$ sudo apt-get install python-dev python-pip              # for python 2
$ sudo apt-get install python3-dev python3-pip            # for python 3

साथ ही पायथन MySQL ड्राइवरों में से एक ( mysqlclient Django के लिए अनुशंसित विकल्प को छोड़कर):

$ pip install mysqlclient    # python 2 and 3
$ pip install MySQL-python   # python 2
$ pip install pymysql        # python 2 and 3

डेटाबेस एन्कोडिंग को Django द्वारा सेट नहीं किया जा सकता है, लेकिन डेटाबेस स्तर पर कॉन्फ़िगर करने की आवश्यकता है। /etc/mysql/mariadb.conf/*.cnf (या /etc/mysql/mariadb.conf/*.cnf ) में default-character-set और एन्कोडिंग सेट करें:

   [mysql]
   #default-character-set = latin1    #default on some systems.
   #default-character-set = utf8mb4   #default on some systems.
   default-character-set = utf8

   ...
   [mysqld]
   #character-set-server  = utf8mb4
   #collation-server      = utf8mb4_general_ci
   character-set-server  = utf8
   collation-server      = utf8_general_ci

MySQL या MariaDB के लिए डेटाबेस कॉन्फ़िगरेशन

#myapp/settings/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB_NAME',
        'USER': 'DB_USER',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',   # Or an IP Address that your database is hosted on
        'PORT': '3306',
        #optional:
        'OPTIONS': {
            'charset' : 'utf8',
            'use_unicode' : True,
             'init_command': 'SET '
                'storage_engine=INNODB,'
                'character_set_connection=utf8,'
                'collation_connection=utf8_bin'
                #'sql_mode=STRICT_TRANS_TABLES,'    # see note below
                #'SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',
        },
        'TEST_CHARSET': 'utf8',
        'TEST_COLLATION': 'utf8_general_ci',
    }
}

यदि आप Oracle के MySQL कनेक्टर का उपयोग कर रहे हैं तो आपकी ENGINE लाइन इस तरह ENGINE चाहिए:

'ENGINE': 'mysql.connector.django',

जब आप एक डेटाबेस बनाते हैं, तो सुनिश्चित करें कि एन्कोडिंग और टकराव को निर्दिष्ट करें:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

MySQL 5.7 से और MySQL 5.6 के नए इंस्टाल पर , sql_mode विकल्प के डिफ़ॉल्ट मान में STRICT_TRANS_TABLES है । यह विकल्प त्रुटियों को चेतावनी देता है जब डेटा प्रविष्टि पर छंटनी की जाती है। Django अत्यधिक डेटा हानि (या तो STRICT_TRANS_TABLES या STRICT_ALL_TABLES) को रोकने के लिए MySQL के लिए एक सख्त मोड को सक्रिय करने की सिफारिश करता है। /Etc/my.cnf sql-mode = STRICT_TRANS_TABLES जोड़ने में सक्षम करने के लिए

PostgreSQL

कुछ पैकेज स्थापित करने के लिए सुनिश्चित करें:

sudo apt-get install libpq-dev
pip install psycopg2

PostgreSQL के लिए डेटाबेस सेटिंग्स:

#myapp/settings/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'myprojectDB',
        'USER': 'myprojectuser',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

पुराने संस्करणों में आप अन्य उपनाम django.db.backends.postgresql_psycopg2 उपयोग कर सकते हैं।

Postresql का उपयोग करते समय आपके पास कुछ अतिरिक्त सुविधाओं तक पहुंच होगी:

Modelfields:

ArrayField         # A field for storing lists of data. 
HStoreField        # A field for storing mappings of strings to strings. 
JSONField          # A field for storing JSON encoded data. 
IntegerRangeField  # Stores a range of integers 
BigIntegerRangeField # Stores a big range of integers 
FloatRangeField    # Stores a range of floating point values. 
DateTimeRangeField # Stores a range of timestamps

SQLite

Django के लिए sqlite डिफ़ॉल्ट है। इसका उपयोग उत्पादन में नहीं किया जाना चाहिए क्योंकि यह आमतौर पर धीमा होता है।

#myapp/settings/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'db/development.sqlite3',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    },
}

फिक्स्चर

फिक्स्चर डेटाबेस के लिए प्रारंभिक डेटा हैं। सबसे सीधा तरीका जब आपके पास पहले से मौजूद कुछ डेटा है तो कमांड dumpdata का उपयोग करना है

 ./manage.py dumpdata > databasedump.json                # full database
 ./manage.py dumpdata myapp > databasedump.json          # only 1 app
 ./manage.py dumpdata myapp.mymodel > databasedump.json  # only 1 model (table)

यह एक json फाइल बनाएगा जिसे फिर से इम्पोर्ट करके आयात किया जा सकता है

./manage.py loaddata databasedump.json

किसी फ़ाइल को निर्दिष्ट किए बिना loadddata का उपयोग करते loadddata , Django आपके ऐप में एक fixtures फ़ोल्डर या सेटिंग्स में FIXTURE_DIRS में प्रदान की गई निर्देशिकाओं की सूची की FIXTURE_DIRS , और इसके बजाय इसकी सामग्री का उपयोग करेगा।

/myapp
   /fixtures 
        myfixtures.json
        morefixtures.xml 

संभावित फ़ाइल स्वरूप हैं: JSON, XML or YAML

फिक्स्चर JSON उदाहरण:

[
  {
    "model": "myapp.person",
    "pk": 1,
    "fields": {
      "first_name": "John",
      "last_name": "Lennon"
    }
  },
  {
    "model": "myapp.person",
    "pk": 2,
    "fields": {
      "first_name": "Paul",
      "last_name": "McCartney"
    }
  }
]

जुड़नार YAML उदाहरण:

- model: myapp.person
  pk: 1
  fields:
    first_name: John
    last_name: Lennon
- model: myapp.person
  pk: 2
  fields:
    first_name: Paul
    last_name: McCartney

फिक्स्चर एक्सएमएल उदाहरण:

<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
    <object pk="1" model="myapp.person">
        <field type="CharField" name="first_name">John</field>
        <field type="CharField" name="last_name">Lennon</field>
    </object>
    <object pk="2" model="myapp.person">
        <field type="CharField" name="first_name">Paul</field>
        <field type="CharField" name="last_name">McCartney</field>
    </object>
</django-objects>

Django कैसेंड्रा इंजन

  • पाइप स्थापित करें: $ pip install django-cassandra-engine
  • अपनी सेटिंग में INSTALLED_APPS से प्रारंभ करना फ़ाइल में जोड़ें: INSTALLED_APPS = ['django_cassandra_engine']
  • स्टैंडिंग की स्थापना

standart

DATABASES = {
    'default': {
        'ENGINE': 'django_cassandra_engine',
        'NAME': 'db',
        'TEST_NAME': 'test_db',
        'HOST': 'db1.example.com,db2.example.com',
        'OPTIONS': {
            'replication': {
                'strategy_class': 'SimpleStrategy',
                'replication_factor': 1
            }
        }
    }
}

कैसेंड्रा नए उपयोगकर्ता cqlsh बनाएँ:

DATABASES = {
'default': {
    'ENGINE': 'django_cassandra_engine',
    'NAME': 'db',
    'TEST_NAME': 'test_db',
    'USER_NAME'='cassandradb',
    'PASSWORD'= '123cassandra',
    'HOST': 'db1.example.com,db2.example.com',
    'OPTIONS': {
        'replication': {
            'strategy_class': 'SimpleStrategy',
            'replication_factor': 1
        }
    }
}

}



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow