Django学习——topic2

数据库的迁移

迁移是Django同步您对模型所做更改(添加字段,删除模型等)到您的数据库模型的方式

生成迁移文件——执行python manage.py makemigrations

将应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中

执行迁移脚本程序 -执行python manage.py migrate

如果要想精确到某一个迁移文件则可以使用:

python manage.py migrate appname 文件名

创建模型类流程

任何关于表结构的修改,务必在对应模型上修改bookstore_book表添加一个名为InFo的字段varchar(100)
解决方案:
1.模型类中添加对应类属性
2.执行数据库迁移

模型类-字段类型

BooleanField
数据库类型:tinyint(1)
编程语言中使用True或False表示值
在数据库中:使用1或0来表示具体的值
CharField()
数据库类型:varchar
注意:必须要指定max_length参数值
DateField()
数据库类型(date)

模型类-Mate类

Mate类定义
使用内部Mate类来给模型赋予属性,Meta类下有很多内建的类属性,可对模型做一些控制

条件查询-方法

语法:MyModel.objects.get(条件)
作用:返回满足条件的唯一条数据
说明:该方法只能返回一条数据
查询结果多余一条数据则抛出
,Model .MultpleObjectsReturned异常
查询结果如果没有数据抛出Model.DoseExist异常

查询谓词

定义:做更领会的条件查询时需要使用查询谓词
说明:每一个查询谓词是一个独立的查询功能
_contains:包含指定值
实例:Author.objects.filter(name_contains=‘w’)
#等于select * from author where age > 50
_gte:大于等于
It:小于
Ite:小于等于
双下滑线

_in:查找数据是否在指定范围内
样例:Author.Objects.filter(country_in=[‘中国’,‘日本’,‘韩国’])
#等同于 select * from author where country in(‘中国’,‘日本’,‘韩国’)

_range:查询数据是否在指定的区间范围内
样例:
#查询年龄在某一区间内的所有作者
Author.objects.filter(age_range=(35,50))
#等同于 SELECT …WGERE Author BETWEEN 35 and 50;

查询单个数据

1.查询
——通过get(得到要修改的实体对象)
2.修改
——通过对象.属性的方式修改数据
3.保存
——通过对象.save()保存数据

删除数据

查找查询结果对应的一个数据对象
调用这个数据对象的delete()方法实现删除

try:
	auth = Author.objects.get(id=1)
	auth.delete()
except:
	print(删除失败)

admin

admin管理后台

django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用
django或搜索所有已注册的模型类,为这些模型类提供管理界面,供开发中使用

admin配置步骤

创建后台管理账号——该账号为管理后台最高权限账号
python manage.py createsuperuser
$ python manage.py createsuperuser
username (leave blank to use 'tarena'):tarena #此处输入用户名
Email address:laowei@tedu.cn
Password: #此处输入密码(密码要复杂写)
Password (again): #再次输入密码
Superuser created successfully.$

注册自定义模型

若要自己定义的模型类也能在/admin后台管理界中显示和管理,需要将自己的类注册到后台管理界面
注册步骤:
1.在应用app中的admin.py中导入注册要管理的模型models类,如:from .models import Book
2.调用admin.site.register方法进行注册,如:
admin.site.register(自定义模型类)

使用方法

1.在<应用app>/admin.py里定义模型管理类
calss xxxManager(admin.ModelAdmin):
......
2.绑定注册模型管理器和模型类
from django.contrib import admin
from .model import *
admin.site.register(YYYY,XXXXManager) #绑定YYYY模型类与管理器类    XXXXManager


另:mysql重改表名
mysql> alter table ts01 rename to ts01_new;
#修改表名的语法:alter table rename to/as new_tablename;
Query OK, 0 rows affected (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值