Django 使用数据库

Django 使用数据库

 

概述

使用mysql

概述

 

DATABASE_ENGINE告诉Django使用哪个数据库引擎,如果你使用数据库和Django工作

 

的话,DATABASE_ENGINE必须是下面的字符串集合: (...)注意不管你使用什么数据

 

库,你都需要安装相应的数据库适配器,每个适配器在网上都是免费的

DATABASE_NAME告诉Django数据库名字是什么,如果你使用SQLite, 指出数据库文

 

件的完整的文件系统路径,如'/home/django/mydata.db'

DATABASE_USER告诉Django你连接数据库的用户名,如果你使用SQLite,这项为空

DATABASE_PASSWORD告诉Django你连接数据库的密码,如果你使用SQLite或者你的密

 

码为空,则这项为空

DATABASE_HOST告诉Django你连接数据库的主机,如果你的数据库和Django安装在同

 

一台计算机上,则这项为空;如果你使用SQLite,这项为空;MySQL在这里很特殊,如

 

果这项的值以'/'开头并且你使用MySQL,MySQL会通过Unix socket连接特殊的

 

socket;例如DATABASE_HOST = '/var/run/mysql/';如果你使用MySQL但这项的值不

 

是以'/'开头,那么这项的值就假设为所连接的主机

DATABASE_PORT告诉Django连接数据库的端口,如果你使用SQLite,则这项为空。否

 

则,如果这项为空,底层的数据库适配器会使用给的数据库的默认端口,大部分情况

 

下默认端口即可

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

 

首先在你第2章创建的mysite项目目录下运行python manage.py shell,你将会看到

 

进入了Python交互环境,但是眼睛是会骗人的!它和普通的python有一个重要的不

 

同,普通的python命令进入的是Python shell,但是前者告诉Django在启动shell前

 

使用哪个settings文件这是做数据库查询的主要前提,Django需要知道使用哪个

 

settings文件来得到数据库连接信息在后台,python manage.py shell设置了

 

DJANGO_SETTINGS_MODULE环境变量后面我们会解释它的微妙之处,先让我们测试一

 

下数据库配置:

 

>>> from django.db import connnection

>>> cursor = connection.cursor()

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

 

使用mysql

 

创建数据库

 

# mysql -p            // 提示输入root密码

...

mysql> create database ylinux;  // 创建ylinux数据库

mysql> use ylinux;         // 使用ylinux数据库

Database changed

mysql> show tables;

Empty set (0.00 sec)

 

mysql> create table visit (times bigint);  // 创建一个数据存放访问量

Query OK, 0 rows affected (0.09 sec)

 

mysql> show tables; // 能看到多了一个表

+------------------+

| Tables_in_ylinux |

+------------------+

| visit            |

+------------------+

1 row in set (0.05 sec)

 

mysql>

创建数据库用户ylinux对ylinux数据库有查询、插入、修改、删除权限,只能在本

 

机:

 

mysql> grant select,insert,update,delete on ylinux.* to ylinux@localhost 

 

identified by "abc";

Query OK, 0 rows affected (0.38 sec)

以后要修用户的密码,可以用:

 

# mysql -uroot -p

...

mysql> use mysql

mysql> select * from user where user='ylinux';

...  // 这里我们可以查看到 ylinux 的 "Host"和"User" 信息

mysql> set password for ylinux@"localhost" = PASSWORD('你的密码');

// 其中 localhost 就是上条命令常看到的。

现在配置 settings.py :

 

DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 

 

'postgresql', 'mysql', 'sqlite3' or 'oracle'.

DATABASE_NAME = 'ylinux'             # Or path to database file if using 

 

sqlite3.

DATABASE_USER = 'ylinux'             # Not used with sqlite3.

DATABASE_PASSWORD = 'abc'         # Not used with sqlite3.

DATABASE_HOST = ''             # Set to empty string for localhost. Not 

 

used with sqlite3.

DATABASE_PORT = ''             # Set to empty string for default. Not 

 

used with sqlite3.

 

 

 

DATABASE_ENGINE告诉Django使用哪个数据库引擎,如果你使用数据库和Django工作

 

的话,DATABASE_ENGINE 必须是下面的字符串集合: (...)注意不管你使用什么数

 

据库,你都需要安装相应的数据库适配器,每个适配器在网上都是免费的

DATABASE_NAME告诉Django数据库名字是什么,如果你使用SQLite, 指出数据库文

 

件的完整的文件系统路径,如'/home/django/mydata.db'

DATABASE_USER告诉Django你连接数据库的用户名,如果你使用SQLite,这项为空

DATABASE_PASSWORD告诉Django你连接数据库的密码,如果你使用SQLite或者你的密

 

码为空,则这项为空

DATABASE_HOST告诉Django你连接数据库的主机,如果你的数据库和Django安装在同

 

一台计算机上,则这项为空;如果你使用 SQLite,这项为空;MySQL在这里很特殊,

 

如果这项的值以'/'开头并且你使用MySQL,MySQL会通过Unix socket连接特殊的

 

socket;例如DATABASE_HOST = '/var/run/mysql/';如果你使用MySQL但这项的值不

 

是以'/'开头,那么这项的值就假设为所连接的主机

DATABASE_PORT告诉Django连接数据库的端口,如果你使用SQLite,则这项为空。否

 

则,如果这项为空,底层的数据库适配器会 使用给的数据库的默认端口,大部分情

 

况下默认端口即可

view plaincopy to clipboardprint?

DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 

 

'postgresql', 'mysql', 'sqlite3' or 'oracle'.  

DATABASE_NAME = 'ylinux'             # Or path to database file if using 

 

sqlite3.  

DATABASE_USER = 'ylinux'             # Not used with sqlite3.  

DATABASE_PASSWORD = 'abc'         # Not used with sqlite3.  

DATABASE_HOST = ''             # Set to empty string for localhost. Not 

 

used with sqlite3.  

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?

>>> from django.db import connection  

>>> cursor = connection.cursor()  

 

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值