您的位置:首页 > 数据库

Django笔记:2.数据库的建立

2016-05-05 09:51 309 查看

数据库的建立

编辑mysite/settings.py,找到Database:

# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases 
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}


默认情况下,该配置使用Django自带的SQLite。如果你是数据库初学者,或者你仅仅是想要试用一下Django,它是最简单的选择。 SQLite包含在Python中,所以你不需要另外安装其他任何东西来支持你的数据库。

当然,你也可以使用其他数据库,如果你希望使用另外一种数据库,请安装合适的database binding,并在 DATABASES中修改配置以匹配你的数据库连接的设置。

Django默认使用SQLite 建立一个数据库,这是比较简单的方法,可以使用以下配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
}
}


当连接其他数据库后端,比如MySQL、Oracle 或PostgreSQL,必须提供更多的连接参数。关于如何指定其他的数据库类型,参见后面的ENGINE 设置。下面的例子用于PostgreSQL:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}


更多设置见:http://python.usyiyi.cn/django/ref/settings.html#std:setting-DATABASES

如果你使用PostgreSQL或者MySQL,确保到此你已经建立好一个数据库。

如果你使用SQLite,你不需要事先创建任何东西 —— 数据库文件将会在需要的时候自动创建。

当你编辑mysite/settings.py时,请设置TIME_ZONE为你自己的时区。

TIME_ZONE = 'Asia/Shanghai'


另外,请注意文件顶端的INSTALLED_APPS设置。它保存这个Django实例中激活的所有的Django应用的名字。 应用可以使用在多个项目中,而且你可以将这些应用打包和分发给其他人在他们的项目中使用。

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]


默认情况下,INSTALLED_APPS包含下面的应用,它们都是Django 与生俱来的:

django.contrib.admin —— 管理站点。

django.contrib.auth —— 认证系统。

django.contrib.contenttypes —— 用于内容类型的框架。

django.contrib.sessions —— 会话框架。

django.contrib.messages —— 消息框架。

django.contrib.staticfiles —— 管理静态文件的框架。

然而上面的部分应用至少需要使用一个数据库表,因此我们需要在使用它们之前先在数据库中创建相应的表。要做到这一点,请在cmd运行以下命令:

python manage.py migrate




migrate查看INSTALLED_APPS设置并根据mysite/settings.py文件中的数据库设置创建任何必要的数据库表,数据库的迁移还会跟踪应用的变化(我们稍后会讲到)。你会看到对每次迁移有一条信息。如果你有兴趣,可以运行你的数据库的命令行客户端并输入dt (PostgreSQL), SHOWTABLES; (MySQL)或.schema (SQLite)来显示Django创建的表。

对于极简主义者来说

就像我们上面说到的,以上包含的默认应用用于常见的场景,但并不是每个人都需要它们。 如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。migrate 命令将只为INSTALLED_APPS中的应用运行数据库的迁移。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: