转帖:django中操作mysql

来源:互联网 发布:js触发a href跳转 编辑:程序博客网 时间:2024/05/21 19:27
 

Django 使用数据库

分类: python 300人阅读 评论(0)收藏 举报
  1. DATABASE_ENGINE告诉Django使用哪个数据库引擎,如果你使用数据库和Django工作的话,DATABASE_ENGINE 必须是下面的字符串集合: (...)注意不管你使用什么数据库,你都需要安装相应的数据库适配器,每个适配器在网上都是免费的
  2. DATABASE_NAME告诉Django数据库名字是什么,如果你使用SQLite,指出数据库文件的完整的文件系统路径,如'/home/django/mydata.db'
  3. DATABASE_USER告诉Django你连接数据库的用户名,如果你使用SQLite,这项为空
  4. DATABASE_PASSWORD告诉Django你连接数据库的密码,如果你使用SQLite或者你的密码为空,则这项为空
  5. DATABASE_HOST告诉Django你连接数据库的主机,如果你的数据库和Django安装在同一台计算机上,则这项为空;如果你使用 SQLite,这项为空;MySQL在这里很特殊,如果这项的值以'/'开头并且你使用MySQL,MySQL会通过Unix socket连接特殊的socket;例如DATABASE_HOST = '/var/run/mysql/';如果你使用MySQL但这项的值不是以'/'开头,那么这项的值就假设为所连接的主机
  6. DATABASE_PORT告诉Django连接数据库的端口,如果你使用SQLite,则这项为空。否则,如果这项为空,底层的数据库适配器会使用给的数据库的默认端口,大部分情况下默认端口即可

view plaincopy to clipboardprint?
  1. DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.  
  2. DATABASE_NAME = 'ylinux'             # Or path to database file if using sqlite3.  
  3. DATABASE_USER = 'ylinux'             # Not used with sqlite3.  
  4. DATABASE_PASSWORD = 'abc'         # Not used with sqlite3.  
  5. DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.  
  6. DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.  

一旦你输入了这些设置,测试一下你的配置:

首先在你第2章创建的mysite项目目录下运行python manage.py shell,你将会看到进入了Python交互环境,但是眼睛是会骗人的!它和普通的python有一个重要的不同,普通的python命令进入的是 Python shell,但是前者告诉Django在启动shell前使用哪个settings文件这是做数据库查询的主要前提,Django需要知道使用哪个 settings文件来得到数据库连接信息在后台,python manage.py shell设置了DJANGO_SETTINGS_MODULE环境变量后面我们会解释它的微妙之处,先让我们测试一下数据库配置:

view plaincopy to clipboardprint?
  1. >>> from django.db import connnection  
  2. >>> cursor = connection.cursor()  

如果什么事情都没有发生,则你的数据库配置对了