Python Web应用框架:Django 1.11模型

Django模型

模型在Django中,是一个被存储在资料库中的物件,可以想像是一种表格(table)的感觉。以下用简单的部落格网站来说明模型。

建立一个新的应用:

python manage.py startapp blog

这时的Django /目录下会多出一个资料夹博客接着也要告诉Django中我们建立了这样的应用程式,编辑mysite的/ settings.py,在INSTALLED_APPS里面加入刚才创的博客:

INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles' ,

    'blog',

]

2.建立一个部落格的模型

编辑博客/ models.py:

from django.db import models

from django.utils import timezone

from django.contrib.auth.models import User

class Post(models.Model):

author = models.ForeignKey(User)

title = models.CharField(max_length=200)

text = models.TextField()

created_date = models.DateTimeField(

default=timezone.now)

published_date = models.DateTimeField(

blank=True, null=True)

def publish(self):

self.published_date = timezone.now()

self.save()

def __str__(self):

return self.title

定义一个物件后,里面有属性:作者,标题,文字,CREATED_DATE,published_date,还有方法:发布,__ str__就像是基本的部落格内容要有作者,标题,内文,建立日期,发表日期。以及「送出」的功能。

如同在资料库建立表格时,要定义每个栏位的资料型态。

author = models.ForeignKey(User)→Foreign Key

title = models.CharField(max_length = 200)→200以内的字元数

text = models.TextField ()→无上限的字元数

created_date = models.DateTimeField(default = timezone.now)→日期时间

published_date = models.DateTimeField(blank = True,null = True)→日期时间

更多其他资料的型态在官方文件都能找到。

3.将编辑完成后的模型加入资料库中:

python manage.py makemigrations

输出结果:

“blog”

  迁移:blog \ migrations \ 0001_initial.py

    - 创建模型Post

接着再输入:

python manage.py migrate

输出结果:

要执行的操作:

应用所有迁移:admin,auth,blog,contenttypes,sessions

运行迁移:

应用blog.0001_initial ... OK

Django管理员

如果要进行资料的新增,修改,删除的话,可以直接进入后台执行。

编辑博客/ admin.py:

从django.contrib导入admin

从.models导入Post

admin.site.register(POST)

2.运行Web服务器:

python manage.py runserver

3.打开浏览器:http : //127.0.0.1 :8000/admin/

输入建立资料库时的帐号密码就能登入后台,进入博客下面的文章,里面有很友善的UI介面可以直接做资料的新增,修改,删除。

你可能感兴趣的:(Python Web应用框架:Django 1.11模型)