Django学习入门笔记(三)

模型部分讲解

 

本文是自己学习做的笔记,如有雷同纯属巧合,如有问题请指出,谢谢!

基于环境Ubuntu16.04

python3.6

Django 2.07


[储备知识] ORM(对象object-关系relationship-映射map)

ORM的作用->完全面向对象不需要对任何sql语句进行操作,这样修改数据库(orcale/sqlite3/mysql)时只需要对少量代码进行修改

(1)数据库的更换
1-在mysql下创建数据库,如名为test2(Django默认是sqlite3的数据库,换库配置需要换)
2-更换mysql数据库: 在settings文件中的数据库做如下配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test2',
        'USER': 'root',
        'PASSWORD': 'mysql',
        'HOST': 'localhost',
        'PORT': '3306'

    }
}


这里的name为需要使用到的mysql数据库的名称,USER PASSWORD为登陆数据库的用户名密码
HOST为数据库的IP地址,PORT默认为3306

注意python3可能安装不上MYSQLdb可以用pymysql代替
方法为

import pymysql
pymysql.install_as_MySQLdb()

Django根据属性的类型确定:当前选择数据库支持字段的类型以及默认的控件类型,比如搜索框等
Django会为表自动添加primary key每个模型只有一个pk(primary key)如果已经赋予了一个PK则不会自动添加
在models里面定义表时,表名注意:1-不能设为python预留的名称 2-不能包含__两个以上连续的下划线(__在后面做查询的时候用到)

[一]表内属性的定义类型
1-字段类型

常用的字段类型有:
    from django.db.models as models
    models.BooleanField
    models.FloatField
    models.TimeField
    models.DateTimeField
    models.DecimalField(max_digits,decimal_places) # 第一个参数是总的数的位数,第二个数是小数的位数
    models.FileField: 一个上传文件的字段   models.ImageField:保证上传是个有效的image 
    # 这二者一般而言不会用,一般只会把文件上传到云
    # 然后上传磁盘上的地址就可以
    ………………等字段的类型,都以Field结尾
    (在设计表的时候可以定义一个isDelete的属性做逻辑删除不做物理删除)

2-字段选项
    null      --->True Django将null存储到数据库
    blank     --->True允许该字段为空白
    db_column --->字段的名称,如果未指定就用属性的名称
    db_index  --->如果为True则在表中为字段创建索引(加速查询)
    default   --->默认值
    primary   --->是否为主键 此时字段设置为AutoField。
    unique    --->如果为True这个字段在表中必须有唯一值

用法如下

    hname = models.CharField(max_length=20, db_column='Hero Name')
    hgender = models.BooleanField(default=True)

3-关系(都在models中)
    F

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值