Django官方教程总结(二)

Django官方教程总结(二)

  • 建立SQLite数据库
  • 创建模型
  • Django提供自动生成的管理页面


数据库配置

在Django中,默认使用了自带的SQLite数据库,为一个文件,保存在项目的根目录下。

# mysite/settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

当然可以使用其它数据库以及设置保存的位置,可以参考


更改时区

打开mysite/settings.py,通过修改TIME_ZONE来更改时区。

# 更改为上海时区
TIME_ZONE = 'Asia/Shanghai'

如不修改,使用Django的DateTimeField获得的时间将与当前系统的时间不一致。


创建默认数据库

在mysite/settings.py文件中的INSTALLED_APPS下默认包括了Django自带的一些应用,比如管理员站点、认证授权系统等。

我们在使用这些应用之前需要在数据库中创建相应的数据表,执行以下命令:

python manage.py migrate


创建模型

在Django中,第一步应该是自定义模型,在polls/models.py中加入下面代码:

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length = 200)
    pub_date = models.DataTimeField('date published')
    

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete = models.CASCADE)
    choice_text = models.CharField(max_length = 200)
    votes = models.IntegerField(default=0)

定义该模型所需的数据元素以及类型,外键也应在模型中定义。然后Django就会自动生成对应的数据表以及其它代码。


激活模型

为了在项目中包含这个应用,我们需要在INSTALLED_APPS中将polls包括进来:

# mysite/settings.py
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

然后运行下面的命令:

python manage.py makemigrations polls

生成一个迁移文件,位置存储在polls/migrations/0001_initial.py里。该迁移文件保存了创建数据表的一些语句,当然我们也可以手动修改迁移文件。

然后运行下面的命令,来创建数据表:

python manage.py sqlmigrate polls 0001

但是这个sqlmigrate命令并没有真正的创建数据表,它只是将命令输出在屏幕上,让我们看看等会Django会执行哪些SQL语句。接下来再次运行migrate命令,在数据库中创建自定义的数据表:

python manage.py migrate

迁移的好处在于,在开发过程中只需要关注模型的代码部分,而不需要重新在数据库中删除或者新增对应的表,这些步骤Django已经帮我们完成了。


Django管理页面

大部分网站都需要后台界面来进行增删改查等操作,Django会根据模型自动来创建后台界面,方便了开发。

创建一个管理员账号
python manage.py createsuperuser

然后输入用户名和密码等信息

启动服务器
python manage.py runserver

在本地下,访问http://127.0.0.1:8000/admin/ 进入管理员登陆界面。

在管理页面中加入投票应用

根据上述网站进入管理页面,我们是看不到Question和Chioce应用的,因为我们还需要告诉管理员Question和Choice都需要一个后台接口,我们可以在polls/admin.py中加入以下代码进行注册:

from django.contrib import admin
from .models import Question, Choice

# 为Question和Choice注册后台接口
admin.site.register(Question)
admin.site.register(Choice)


小节

  • 配置数据库,如果不做任何修改,将使用Django默认的SQLite数据库。
  • 更改时区
  • 创建应用所需的模型
  • 根据模型自动生成相应的数据表
  • 为模型注册后台接口,方便在后台进行增删改查


传送门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值