Django settings.py 中设置访问 MySQL 数据库一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息

Posted bobby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django settings.py 中设置访问 MySQL 数据库一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息相关的知识,希望对你有一定的参考价值。

settings.py 

1. 修改时区: 
   默认为:TIME_ZONE = ‘America/Chicago‘ 
   修改为:TIME_ZONE = ‘Asia/Shanghai‘ 

2. 默认的url: 
   ROOT_URLCONF = ‘mysite.urls‘ 

3. 模板位置: 
   TEMPLATE_DIRS = (.....) 
  

Java代码  技术图片
  1. import os.path  
  2. TEMPLATE_DIRS = (  
  3.     #‘/home/tony/djcode/mysite/templates‘,  
  4.     os.path.join(os.path.dirname(__file__),‘templates‘).replace(‘\‘,‘/‘),  
  5. )  



4. 数据库配置:(MySQL) 
  

Java代码  技术图片
  1. DATABASES = {  
  2.    ‘default‘: {  
  3.        ‘ENGINE‘: ‘mysql‘,                 
  4.        ‘NAME‘: ‘projectforge‘,                       
  5.        ‘USER‘: ‘root‘,                           
  6.        ‘PASSWORD‘: ‘root‘,                          
  7.        ‘HOST‘: ‘localhost‘,                      
  8.        ‘PORT‘: ‘5432‘  
  9.     }  
  10. }        

 

 

============================================================================================

文章来源:http://club.topsage.com/thread-2261820-1-1.html

Django访问数据库的设置是在settings.py中写入数据库的engine、用户名和密码,默认的写法是:

DATABASE_ENGINE = ‘mysql‘ # ‘postgresql_psycopg2‘, ‘postgresql‘, ‘mysql‘, ‘sqlite3‘ or ‘oracle‘. 
DATABASE_NAME = ‘xxx‘ # Or path to database file if using sqlite3. 
DATABASE_USER = ‘root‘ # Not used with sqlite3. 
DATABASE_PASSWORD = ‘xxx‘ # Not used with sqlite3. 
DATABASE_HOST = ‘localhost‘ # Set to empty string for localhost. Not used with sqlite3. 
DATABASE_PORT = ‘3306‘ # Set to empty string for default. Not used with sqlite3.

数据库的关键信息都写在settings.py中,这样做是非常不安全的。现在可以在settings.py里面使用DATABASE项代替以上的配置项,username和password可以写在配置文件中。下面是把username和password放到MySQL数据库的配置文件中,由 DATABASE项读取的示例:

  1. DATABASES = {
  2.     ‘default‘: {
  3.         ‘ENGINE‘: ‘django.db.backends.mysql‘,
  4.         ‘OPTIONS‘: {
  5.             ‘read_default_file‘: ‘/etc/mysql/my.cnf‘,
  6.         },
  7.     }
  8. }
  1. # my.cnf
  2. [client]
  3. database = xxx
  4. user = xxx
  5. password = xxxxxx
  6. default-character-set = utf8

也可以在DATABASES中加入NAME来指定数据库名,client中去除database选项,HOST和PORT这些也都可以写在my.cnf文件中。

 

以上是关于Django settings.py 中设置访问 MySQL 数据库一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在django中设置会话超时?

Django 项目中设置缓存

如何让一个django包修改settings.py?

在 django settings.py 中更新 media_root 时遇到问题

Django 在 DATABASES 中设置 TIME_ZONE 对“日期”查找没有影响

Django详解之models操作