django1基础启动+models模块

1 .启动项目
任务栏启动

>>>  python manage.py runserver
>>>  python manage.py runserver 0.0.0.0:8888

创建 app, 新添加的app名字, appname

>>>python manage.py startapp appname

生成和同步数据库

python manage.py makemigrations #可以指定应用,只执行指定应用。不建议使用
python manage.py migrate
python manage.py createsuperuser  # 创建超级管理员

django ——————models

常用字段类型

字段类型Value
CharField字符串
TextField字符串,大文本, 文本域,
DateField日期类型
DateTimeField日期+时间
BooleanField真假
NullBooleanField真假+ Null
IntegerField整数类型
PositiveIntegerField正整数
DecimalField小数
ImageField图片
AutoField自动递增 用于主键 , 一个表中只有一个主键
EmailField邮箱
UUIDField通用的唯一识别码

多表关系信息

多表关系Value
ForeignKey1:n ,一对多,班级与学生
ManyToManyFieldn:n 多对多,学生与课程
OneToOneField1:1 ,一对一,人与身份证
属性 on_delete级联删除,如删除班级时,删除所有班级内的学生信息
# 一对一关系表
class Studer(models.Model):
    ano = models.AutoField(primary_ker=True)

class Scard(models.Model):
    student = models.OneToOneField(Studer,primary_key=True,on_delete=models.CASCADE )

创建字段时可选类型

字段属性Value
max_length限制长度信息
primary_key主键 True
unique是否能重复 True
auto_now_add第一次插入数据时 添加当前时间,True
auto_now更新时插入时间 True
default默认值 ,是否逻辑删除
max_digits小数位数总长度
decimal_places小数点后长度
upload_to上传文件或图片指定存储地址
null是否非空字符串
#  自定义表名
    class Meta:
        db_table = "t_post"

映射到数据库时取决于settings中的databases值

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #链接数据库类型
        'NAME': 'mydatabase',  # 数据库名
        'USER': 'root',        # 用户名
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',  # 地址
        'PORT': '3306',       # 接口
    }
}

原文件上添加字段, 删除迁移文件个数据库迁移信息。删除表

操作数据信息

字段Value
objects.create()添加数据
a.objects.filter()返回一个QuerySet包含与给定查找参数匹配的新对象
a.objects.exclude()返回除给定参数外的 对象
a.objects.get()查询一个,找不时报错
a.objects.all()查询所有
order_by()返回结果进行排序 ,‘-’表示降序
first()取符合条件的第一个

例exclude() 判断QuerySet对象是不是为空

# 排除所有pub_date迟于2005-1-3headline且“ Hello”的条目
Entry.objects. (pub_date__gt=datetime.date(2005, 1, 3), headline='Hello')

#排除所有pub_date迟于2005-1-3或标题为“ Hello”的条目
Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3)).exclude(headline='Hello')


objects取值

 #  .values()将未重写的modin类的通过objects直接取值,不在获取queryset对象

name = Users.objects.filter(name=b['name']).values()

一对多

一 :为主表,
多 :为从表

外键ForeignKey添加在从表中
查询结果为多个时加 .all()

数据库的操作

添加数据信息
保存方式例:

    # 添加数据 直接使用 create 添加
    a_num2 = models.num.objects.create(name=name, password=password)

    # 创建实例后用save(), 保存数据
    a_num = models.num(name=name, password=password)
    a_num.save()

删除数据信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值