搭建自己的Django应用(2)Writing your first Django app, part 2

在完成了搭建自己的Django应用(1)Writing your first Django app, part 1 之后,我们开始第二部分的学习

1.设置数据库。

打开mysite/settting.py,我们会发现里面有很多Python的list,不同的list表示相应的不同的设置,我们找到DATABASES

的设置,如下图所示:


Django默认使用的是sqlite3,原因是sqlite3本身是个很轻量级的数据库,使用方便,而且最重要的原因是Django集成了sqlite3

所以使用起来很方面,如果你想使用其他的数据库,也可以自行下载,其他数据库的设置方式我们会在以后的博客中讲到,

ENGINE可以是django.db.backends.sqlite3', 'django.db.backends.postgresql', 'django.db.backends.mysql', 或者 

'django.db.backends.oracle',也可以时其他的一些数据库。

NAME 表示你的数据的名字,而且要带路径,可以是绝对路径,也可以是相对路径,设置好相应的参数可以了。

2.创建数据库。

在django中创建数据库是一件非常简单的事情,你不需要写sql语句,你要做的仅仅是在应用的models.py中按规定创建好相应

的类,django会自己生成相应的sql语句。

修改polls/models.py如下:

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('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)
在这里,我们创建了两个类,一个叫做Question,另一个叫做Choice,创建类的时候传入models.Model对象作为参数,用该对象

来构建类的关系,CharField代表字符串类型,DateTimeField代表日期类型等等,ForeignKey用来指明外键关系,max_length是

最大长度,questioon_text和pub_date是机器可识别的域的名字,而‘date published’是人可识别的名字,所以在写代码的时候要用到

公布时间的时候用pub_date而不要用‘date published’,on_delete=models.CASCADE代表级联删除的意思,就是,question被删除了

那么它对应的问题也被删除了。

3.把创建的model转化成数据库的表

首先,你需要把polls应用的设置添加到整个网站项目中,修改mysite/settings.py 在INSTALLED_APPS中加入‘polls.app.PollsConfiig’

如下所示

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

然后,你需要通过一行命令来执行model的转化,在mange.py所在的目录下(命令行),执行:

 python manage.py makemigrations polls

如果有如下显示,证明你成功了的创建了迁移文件:

Migrations for 'polls':
  0001_initial.py:
    - Create model Choice
    - Create model Question
    - Add field question to choice
该文件为polls/migrations/0001_initial.py

随后执行迁移操作:

python manage.py migrate

4.对Django中集成的admin模块进行应用

admin模块是管理员模块,能帮你更好的管理你的网站。

首先,你需要创建一个超级用户(在mange.py的路径下):

python manage.py createsuperuser


Username: admin
email填你自己的就好了
Email address: admin@example.com


Password: **********
Password (again): *********
Superuser created successfully.

然后runserver:

python manage.py runserver

打开http://127.0.0.1:8000/admin/你就能看到下图:


登录后就能进行相应的管理操作了。

最后,你可以把数据库中的模块注册到admin页面中,修改polls/admin.py

from django.contrib import admin

from .models import Question

admin.site.register(Question)

你的界面就会变成这样:


添加你的第一个问题吧:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值