前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-3-Model-下

Django源码学习-3-Model-下

作者头像
小团子
发布2019-07-30 15:19:15
4910
发布2019-07-30 15:19:15
举报
文章被收录于专栏:数据云团

Django源码学习-3-Model-中

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

Model 的字段类型和参数类型是 Django 项目中经常需要使用的必备知识点。注意一点的是,每当新建 app 应用后,需要在 settings.py 文件的 INSTALLED_APPS 中注册新建的应用目录名称。然后再执行python manage.py makemigrations命令,在Django工程中会生成.py文件(其中migrations为新生成的模块,红框中为新生成的文件)

其中0001_initial.py文件的内容如下(相当于生成一个数据库源,后面生成数据库表会按照这个数据库源来生成)。然后执行python manage.py migrate命令,它会读取0001_initial.py这个数据库结构文件从而生成数据库表。

代码语言:javascript
复制
from django.db import migrations, models

class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Blog',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('url', models.URLField(verbose_name='链接地址')),
                ('title', models.CharField(max_length=50, verbose_name='标题')),
                ('author', models.CharField(max_length=30, verbose_name='文章作者')),
                ('content', models.TextField(max_length='文章内容')),
                ('tags', models.CharField(max_length=30, verbose_name='文章标签')),
                ('views', models.IntegerField(verbose_name='浏览数')),
                ('add_time', models.DateTimeField(auto_now_add=True, verbose_name='添加时间')),
            ],
            options={
                'verbose_name_plural': '博客文章',
                'verbose_name': '博客文章',
            },
        ),
    ]

① 操作数据库表

操作数据库表,增删改查的方法也是必须掌握的知识点。

1、增--3种方法

代码语言:javascript
复制
models.tb.objects.create(title='数据云团', time='2019年7月') 
代码语言:javascript
复制
obj = models.tb(title='数据云团', time='2019年7月')
obj.save()
代码语言:javascript
复制
# 可以接受字典类型数据 **kwargs
dic = {title='数据云团', time='2019年7月'}
models.tb.objects.create(**dic)

2、查

代码语言:javascript
复制
#获取单条数据,不存在则报错(不建议)
models.tb.objects.get(id=1)  
代码语言:javascript
复制
#获取全部数据
models.tb.objects.all()
代码语言:javascript
复制
#获取全部数据的第1条数据
models.tb.objects.all().first()
代码语言:javascript
复制
#1个参数,获取指定条件的数据
models.tb.objects.filter(name='seven')
代码语言:javascript
复制
#2个参数,获取指定条件的数据
models.tb.objects.filter(name='seven', password='123')
代码语言:javascript
复制
#参数可以是字典形式,获取指定条件的数据
dic = {'name':'seven','password':'123'}  
models.tb.objects.filter(**dic)

3、删

代码语言:javascript
复制
 # 删除指定条件的数据
 models.tb.objects.filter(name='seven').delete()
代码语言:javascript
复制
#参数是字典形式
dic = {'name':'seven','password':'123'}
models.tb.objects.filter(**dic).delete()

4、改--3种方法

代码语言:javascript
复制
#将指定条件的数据更新
models.tb.objects.filter(name='seven').update(password='123')
代码语言:javascript
复制
# 修改单条数据
obj = models.tb.objects.get(id=1)
obj.c1 = '111'
obj.save()
代码语言:javascript
复制
#参数是字典形式
dic = {'name':'seven','password':'123'}
models.tb.objects.filter(**dic).update(**dic)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档