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这个数据库结构文件从而生成数据库表。
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种方法
models.tb.objects.create(title='数据云团', time='2019年7月')
obj = models.tb(title='数据云团', time='2019年7月')
obj.save()
# 可以接受字典类型数据 **kwargs
dic = {title='数据云团', time='2019年7月'}
models.tb.objects.create(**dic)
2、查
#获取单条数据,不存在则报错(不建议)
models.tb.objects.get(id=1)
#获取全部数据
models.tb.objects.all()
#获取全部数据的第1条数据
models.tb.objects.all().first()
#1个参数,获取指定条件的数据
models.tb.objects.filter(name='seven')
#2个参数,获取指定条件的数据
models.tb.objects.filter(name='seven', password='123')
#参数可以是字典形式,获取指定条件的数据
dic = {'name':'seven','password':'123'}
models.tb.objects.filter(**dic)
3、删
# 删除指定条件的数据
models.tb.objects.filter(name='seven').delete()
#参数是字典形式
dic = {'name':'seven','password':'123'}
models.tb.objects.filter(**dic).delete()
4、改--3种方法
#将指定条件的数据更新
models.tb.objects.filter(name='seven').update(password='123')
# 修改单条数据
obj = models.tb.objects.get(id=1)
obj.c1 = '111'
obj.save()
#参数是字典形式
dic = {'name':'seven','password':'123'}
models.tb.objects.filter(**dic).update(**dic)