w8484855@qq.com 发表于 2017-8-17 20:24:10

Django 中的 models

本帖最后由 w8484855@qq.com 于 2017-8-17 20:25 编辑

本文和大家分享的主要是django中models相关内容,一起来看看吧,希望对大家学习django有所帮助。
  概述
  models 用来创建数据库表。创建后运行以下命令迁移数据方可使用
python manage.py makemigrations
python manage.py migrate
  字段
  一个 models 的结构大致如下
  from django.db import modelsclass test(models.Model):
  a1 = models.AutoField(primary_key=True)
  a2 = models.CharField(max_length=100)
  其中的 AutoField CharField 就是字段,定义了数据库中存储数据的类型
  django 有丰富的字段可供选择。
  参数
  上面例子中的 primary_key=True max_length=100 便是对字段进行限制的参数。
  1.null=True 数据库中该字段可为空2.blank=True django 的 admin 添加数据时可留空3.YEAR_IN_SCHOOL_CHOICES = (
  ('FR', 'Freshman'),
  ('SO', 'Sophomore'),
  ('JR', 'Junior'),
  ('SR', 'Senior'),
  ('GR', 'Graduate'),
  )
example = models.CharField(choice = YEAR_IN_SCHOOL_CHOICES) 选项
4.default = 0 默认值为0
5.5.primary_key = True 主键
6.6.unique = True 不允许重复
  表间关系
  数据表之间可以有以下几个关系
  一对多:models.ForeignKey(其他表)
  多对多:models.ManyToManyField(其他表)
  一对一:models.ManyToManyField(其他表)
  创建上跟之前的没有多大的区别,举个例子:
  class people(models.Model):
  name = models.CharField(max_length=100)
  age = models.models.IntegerField()
  class boy(models.Model):
  n = models.ForeignKey(people)
  数据操作
  from .models import *#增
  people.objects.get_or_create(name="1")#删
  people.objects.all().delete()#改
  people.objects.filter(name="1").update(name="2")#查
  people.objects.get(name="1") #单条数据
  people.objects.filter(name="1") #特定数据,不一定是一条(例子不是很好)#数据个数
  a = people.objects.filter(name="1")
  len(a)
  people.objects.filter(name="1").count()#范围
  people.objects.filter(age__range=)#包含
  people.objects.filter(name__contains="1")#排序
  people.objects.all().order_by('-age') #从大到小排序,要从小到大排则去掉负号#其他
  startswith istartswith endswith iendswith
  管理
  在相应文件夹中的 admin.py 编辑好内容,就可以在管理界面中管理数据
  from django.contrib import admin
  # Register your models here.
  from import models
  admin.site.register(models.people)
  如果显示的是 xxx objects,可以这样弄使得数据更容易理解
  class test(models.Model):
  #python2
  def __unicode__(self):
  return self.name
  #python3
  def __str__(self):
  return self.name


来源:简书
页: [1]
查看完整版本: Django 中的 models