视图(就是在应用文件夹下面的view.py里面定义的函数;)
1,定义一个视图
2,配置url ,(客户通过url访问视图)
①,先修改project文件夹下面的urls.py 文件
其中,跳转到应用那个url可以在新版本里面写成 path('',include('myapp.urls'))
另外引入的模块要改成 from django.conf.urls import path
②,在myapp创建的应用文件夹下创造一个urls.py文件
当url地址后面没有跟任何目录时候,会进入index视图
在views.py里面新建视图函数
模板(就是显示给客户看的html ,用view调用来的数据,通过模板显示给客户)
建立文件夹,只有在和myapp 同级文件夹建立一个templates模板文件夹
我们创建模板路径文件夹里以后,我们的应用如何找到这些对应的模板呢,可以先配置路径
如果我们想要输入以下网址,可以显示我们的班级表,如何获得呢?
先定义个班级模板,用来显示数据给客户看
客户输入地址,先给url控制器,所以,模板写完以后,我们需要些urls.py
下面是视图的写法
需求在班级表页面,点击一个班级,可以获得这个班级里面的所有学生数据
拿到别人的Django程序,如何运行安装呢?
1,在setting中修改“数据库”配置
2,到数据库,建一个自己定制的数据库名
3,删除别人的迁移文件,重新生成
Models 详解
1,需要引入的类型,所有模型字段,都在这个模块下面,所以需要引入
2,模型类中属性的几种类型
元选项,当我们的django迁移生成数据库表的时候,表的名字会变成 应用名_模型名;比如myapp_students这样的表名,如果我们想自定义数据库生成的表名!可以使用元选项来定义表名。他是在模型类中定义的类
object模型管理器,作用是用在模型类与数据库之间数据的交互;在创建模型类的时候,如果我们不创建模型管理器,django就会自动给我们生成一个模型管理器object。如果我们自己建了,object就不会生成,模型管理器是manager类型的
Students.object.all()
获得students表里面的所有数据,Students.object.get(pk=1)
获得students表里面id=1的那个数据对象
一般自定义这种管理器没有什么效果,我们只能自己定义管理器的类,(一个模型类可以定义多个管理器的类),定义的写在和这个模型类是相同级别,用自定义的模型管理器类生成对象,(来获得过滤后的数据),比如我们字段里有是否删除的字段,我们就可以定义个过滤器,把是否删除为假的过滤出来,获得没有删除的数据
上图就有了,当我们students.object.all()
获得的数据进行了过滤,凡是没有被删除的都查找了出来
我们通过django模型类往数据库存储数据时候,要生成一个模型类对象,然后每一个字段挨个给赋值,比较麻烦,我们可以给这个模型类定义一个类方法,让他生成一个赋值的对象,这样就简约了不少
上面是在模型类里面定义一个添加数据的方法,下面我们可以用另一种方法定义一个添加数据的方法,要定义在自定义的管理器类里面
使用方法如下
最重要的,我想显示任何任意我想显示的数据,怎么做简单?
1,
上图添加过滤器后,返回的还是一个查询集,都是对象,所以可以继续调用过滤器
1,管理器的集中方法,返回的是查询集,是多个或者列表的几种过滤方法
上面是返回的经过过滤的查询集
2,下面是返回的一个查询集的方法,管理器的一个方法
3,分页用django查询框架怎么写?用到限制查询
查询集函数里面的几个过滤参数的用法
下图不是使用一些查询集的方法,而是使用了aggregate()的方法
下面的max 需要引入模块
判断一条数据里面,A属性和B属性的关系,可以用F
下图为过滤的 是或的条件,满足任意一条就可以找到查询