码迷,mamicode.com
首页 > 其他好文 > 详细

django中模型

时间:2019-09-07 10:41:48      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:field   默认   class   creat   建表   告诉   ack   session   数据库名   

  • django需要使用数据库,则需要安装对应的驱动,比如mysql,则需要安装mysqlclient驱动:
pip install mysqlclient
  • 在settings.py文件中配置数据库连接信息:
DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: firstsite,
        HOST: localhost,
        USER: root,
        PASSWORD: 123456,
        PORT: 3306,
    }
}
# 要求在自己的mysql服务中,先创建好数据库名字为:firstsite,否则django无法创建表。没有创建的话,使用python manage.py migrate,结果如下图所示:

技术图片

 

  •  django根据python中定义的类映射到数据库中的表,自动创建app对应的
python manage.py migrate
# migrate命令将遍历INSTALLED_APPS设置中的所有项目,在数据库中创建对应的表,并打印出每一条动作信息
  • 在模型文件models.py中创建数据库中表对应的实体类(在app目录下面的models.py文件中编写):
from django.db import models


# Create your models here.
# python manage.py makemigrations polls


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)
  • 告诉django,启用自己的app:
# Application definition,在配置文件settings.py中配置:

INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    firstapp‘ #####################填写自己的app应用名称
]
  • 让django根据app中定义的实体类,到配置文件中配置的数据库去创建对应的表:
#当然,如果数据库中已经存在相应的表了,就不会创建相同的表了
python manage.py makemigrations firstapp

运行结果如下:

技术图片

 

  •  正式将firstapp应用中models.py中的类映射到数据库中的表:
python manage.py migrate

技术图片

 

 技术图片

 

  •  使用模型中类的api
# 默认会提供类相应的操作api
python manage.py shell
  • 创建超级管理员:
python manage.py createsuperuser

 

django中模型

标签:field   默认   class   creat   建表   告诉   ack   session   数据库名   

原文地址:https://www.cnblogs.com/igoodful/p/11479356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!