Django基础(2:项目之Models)

准备工作

1. 安装 django

   激活一个虚拟环境后(例如我的是 csdn),运行命令 conda install django 进行安装

    

   检测是否安装成功:运行命令 python -m django --version,如果显示版本号则代表成功

    

2. 创建项目

    选择想要的路径,运行命令:django-admin startproject mysite 即可创建 django 项目

    

   然后用 pycharm 打开,File-->Settings-->Project: mysite-->Project Interpreter,选择带有 django 的虚拟环境的 python.exe

     

      

3. 创建 app 并注册、设置时区

    激活环境后,运行命令 python manage.py startapp polls 创建一个投票应用 polls

     

    此时的目录如下:

    

   然后进行 app 注册,打开 myste/settins.py ,找到 INSTALLED_APPS,添加 polls ,一定要注意末尾的 ‘ , ’ (逗号)

   

  找到 TIME_ZONE,修改 LANGUAGE_CODE、TIME_ZONE、UES_TZ 三个参数,保证整个项目的时间准确不错乱

   

  设置完时区后,至此,准备工作就完成了

编写 models

Python 内置了数据库 SQLite,所以你无需安装额外东西来使用它,作为初学,就用它就行,如果在实际开发中,更多的使用 MySQL 等,我们修改 mysite/settings.py 里的 DATABASE 参数就行,这里初学案例就用默认的

配置完成之后我们再也不需要关心数据库,因为我们用 Models 来关联它,对它进行操作

打开 polls/models.py ,我们需按照规定编写数据模型,这样它才可以自动的映射到数据库

比如类必须继承自 models.Model,属性类型必须是 models.xxxField(),models.ForeignKey() 代表外键等,见代码注释

polls/models.py

from django.db import models

# Create your models here.


# 创建数据模型:投票的问题
# 每个类必须继承自models.Model
class Question(models.Model):
    # 创建问题的内容
    # 每个属性的类型必须是models.xxxField()
    # 其中models.CharField类型必须使用max_length参数指明长度
    question_text = models.CharField(max_length=200)
    # 创建发布日期
    # models.DateTimeField是日期类型
    pub_date = models.DateTimeField('date published')

    # 当对象作为字符串时返回问题的文本内容
    def __str__(self):
        return self.question_text


# 创建数据模型:投票的选项和相应的票数
class Choice(models.Model):
    # models.ForeignKey()方法创建外键,关联Queston
    # on_delete = models.CASCADE设置同步删除
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    # 创建选项的内容
    choice_text = models.CharField(max_length=200)
    # 创建票数,default设置默认值
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

数据库迁移

创建完模型后,还需要激活模型,它才能正真地能绑定到数据库,这个激活的过程我们叫做迁移

为注册的应用准备迁移文件:命令:python manage.py makemigrations polls,出现下面信息代表成功

执行迁移:命令:python manage.py migrate

polls/migrations/0001_initial.py 出现说明迁移成功,该文件是迁移记录文件

如此,我们的第一步:Models 部分就算完成了

猜你喜欢

转载自blog.csdn.net/Jeeson_Z/article/details/82712696