django中模型

  • 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
# 默认会提供类相应的操作apipython manage.py shell
  • 创建超级管理员:
python manage.py createsuperuser

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

时间: 2024-10-17 08:12:18

django中模型的相关文章

Django中模型(二)

Django中模型(二) 三.定义模型 1.模型.属性.表.字段间的关系: 一个模型类在数据库中对应一张表:在模型类中定义的属性,对应该模型对照表中的字段. 2.定义属性 A.概述 ·django根据属性的类型确定以下信息 ·当前选择的数据库支持字段的类型 ·渲染管理表单时使用的默认html控件 ·在管理站点最低限度的验证 B. ·django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 C.属性命名限制 ·遵循标识

Django中模型(三)

Django中模型(三) 四.模型成员 1.类属性 objects:是Manager类的一个对象,作用是与数据库进行交互. 定义模型类时,没有定义管理器,则默认创建名为objects的管理器. 2.自定义模型管理器 格式:自定义名=models.Manager() 当为模型定义管理器后,Django将不再为模型生成objects模型管理器. 3.自定义管理器Manager类 概述:模型管理器是Django的模型进行与数据库进行交互个接口,一个模型可以有多个管理器. 作用:向管理器类中添加额外的方

Django中模型(五)

Django中模型(五) 六.模型查询 1.概述 查询集,表示从数据库获取的对象集合. 过滤器就是一个函数,基于所给的参数限制查询集结果.查询集可以有多个过滤器. 从sql角度来说,查询集合等价于select语句,过滤器等价于where条件. 2.查询集 A.概述 在管理器上调用过滤器方法返回查询集.查询集经过过滤器方法筛选后返回新的查询集,所以可以写成链式调用. B.惰式执行 创建查询集不会带来任何数据的访问,直到调用数据时,才会访问数据库 C.直接访问数据库的情况 迭代.序列化.与if合用

django中模型的简单操作

class Person_Tbl(models.Model):     '''     定义人物类     '''     name = models.CharField(max_length=254,default='')                     #姓名     sex =  models.CharField(max_length=125,default='')                       #性别     height = models.IntegerField

解决在django中应用keras模型时出现的ValueError("Tensor %s is not an element of this graph." % obj)问题

用keras训练好模型,再在django初始化加载模型,这个过程没有问题,但是在调用到模型执行model.predict()的时候就报错: raise ValueError("Tensor %s is not an element of this graph." % obj) ValueError: Tensor Tensor("dense_2/Softmax:0", shape=(?, 2), dtype=float32) is not an element of

django的模型类管理器-----------数据库操作的封装

模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句. 模型类的属性 属性objects:管理器,是Manager类型的对象,用于与数据库进行交互. 当没有为模型类定义管理器时,Django会为模型类生成一个名为objects的管理器,自定义管理器后,Django不再生成默认管理器objects. 管理器是D

Django ORM模型的一点体会

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational mapping)模型.这个ORM模型的设计比较简单,学起来不会特别花时间.不过,Django的ORM模型有自己的一套语法,有时候会觉得别扭.这里聊一下我自己的体会. 模型设计 这一部分算处理得比较好的部分.Django的数据模型的建立过程很简单,就是继承django.db.models中的Model类,

Django中的模式(mvc)

最近准备用Python做做网站,框架选了django,第一次接触web框架,感觉很陌生,model view什么的很奇怪,不过了解了mvc这个模式之后好了很多,今天记录下web中长见的几种模式. 以下内容转自:http://blog.csdn.net/hudan2714/article/details/50990359 MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖model,前两种还是要依赖于model ) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东