设为首页 加入收藏

TOP

Django1.8教程——从零开始搭建一个完整django博客(一)(三)
2017-09-30 17:12:28 】 浏览:381
Tags:Django1.8 教程 从零 开始 搭建 一个 完整 django 博客
,编辑settings.py文件,并在installed_apps设置中添加blog模型。它应该看起来像这样:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
)

现在Django已经激活了blog app

创建和应用迁移

为我们的模型在数据库中创建一个数据表。Django自带数据迁移系统来跟踪你的模型变化,并同步至数据库当中。迁移命令(migration)将会对installed_apps设置中的所有应用进行迁移,始终保持与应用的同步。

首先,需要为我们的模型创建一个迁移记录的列表:

python manage.py makemigrations blog

将会看到以下输出:

You should get the following output:
Migrations for 'blog':
    0001_initial.py:
    - Create model Post

Django刚刚在migrations目录下创建了0001_initial.py文件,你可以打开看看这个迁移文件究竟是什么样子?

Django将会执行迁移文件中的SQL代码,来创建blog模型的数据表。sqlmigrate命令可以看到SQL代码并没有立即执行。

python manage.py sqlmigrate blog 0001

将会有如下输出:

BEGIN;
CREATE TABLE "blog_post" ("id" integer NOT NULL PRIMARY KEY 
AUTOINCREMENT, "title" varchar(250) NOT NULL, "slug" varchar(250) NOT 
NULL, "body" text NOT NULL, "publish" datetime NOT NULL, "created" datetime NOT NULL, "updated" datetime NOT NULL, "status" varchar(10) NOT NULL, "author_id" integer NOT NULL REFERENCES "auth_user" ("id"));
CREATE INDEX "blog_post_2dbcba41" ON "blog_post" ("slug");
CREATE INDEX "blog_post_4f331e2f" ON "blog_post" ("author_id");
COMMIT;

根据使用的数据库的不同,你可能会看到不同的输出数据。上面的输出使用的是SQLite。你可以看到Django生成的数据表名称是由app名称与小写的模型名称组合而成(blog_post),你也可以在元类中使用db_table参数来自定义数据表的名称。Django自动为每一个模型创建主键(Primary_key),当然你也可以在模型的任一属性中添加primary_key=True来自定义主键。

运行以下命令来同步数据库:

python manage.py migrate

得到以下显示:

Applying blog.0001_initial... OK

我们刚刚为installed_apps列表中的所有应用创建了数据表,包括了我们定义的blog应用。现在,数据库反映了我们的模型的当前状态。

如果你对模型进行添加,删除,修改字段等操作,或者你添加了新的模型,都必须用makemigrations命令来创建一个新的迁移列表。迁移文件将会持续跟踪模型的变化,然后你需要运行migrate命令来保证数据库与模型的同步。

原文链接:http://www.landsblog.com/blog/content/djangoexamplecreate
更多教程:http://www.landsblog.com/blog/tag/django

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python练习 根据日志中的ip和url.. 下一篇基于python做的抓图程序1.0.00版本

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目