django基础笔记

django开发web项目的开源框架

django的作用:简单开发数据库驱动的网站,

MVC的核心思想:低耦合,高内聚
低耦合就是模块与模块之间依赖度低,可以独立,
高内聚就是逻辑代码联系越紧密内聚就越高,一般情况下,只要模块与模块之间的耦合度比较低那么内聚自然就高了
MVC中的V代表构造要响应给客户端的html页面,内嵌模板引擎而在MVT中的T代表了这个
C controller:接收请求,逻辑处理,响应请求。与MVT中的V view对应

MVT特点:封装度高,强调代码的服用,模块与模块之间的耦合度较低
django遵循MVC的设计模式,但是它使用的框架叫做MVT但是两个人的设计模式的思想是一样的
设计模式就是一套被人反复使用的,经过分类的,代码设计经验的一个总结
M:就是model,对数据库层的操作,内嵌了ORM框架,ORM框架将数据库表的每一次与其对应的对象进行关联,使我们可可以用面向对象的方恨式去操作数据库,而不需要写sql语句
V: 就是视图,就受请求,逻辑处理,返回数据
T:template用与构造要响应给客户端的html页面,内嵌了模板引擎,实现了动态展示数据,
关系:当客户端输入网址的时候,view模块接收请求,需要数据的话就通过model模块进行数据的查询,拿到数据后返回给vievie经过逻辑处理后,然后通过调用template模板进行数据的填充和渲染返回给view一个html页面,view再把数据响应给客户端

模型,当前项目的开发都是基于数据的
要先分析出项目中所需要的数据然后设计数据库表
先定义模型类,然后通过模型类和对象完成对数据库的增删改查

模型中使用了ORM框架,他会把数据库表的行与其相应的对象建立关联,可以使用面向对象去操作数据库
1.创建模型类
2.模型迁移
分为两步(1)先根据模型类生成创建表的语句 makemigrations
(2)执行迁移,根据上面生成的语句在数据库中建表
3.操作数据库
通过创建的模型类和对象完成数据库表的增删改查
(1)测试的方法,进入当前项目的shell ,进行简单的增删改查API操作
python manage.py shell
直接导入book应用中的models模块中的模型类
通过模型类创建对象,然后用这个对象去修改去添加内容,操作完之后要使用 对象.save()来保存(我觉得也应该是提交事务)
查询表中的所有记录
模型类类名.objects.all()
通过对象名,delete()来删除这个对象,在查询时表里面就没有这个对象的相关信息

站点管理(后台):
分为内容发布和公共访问
内容发布的部分由管理员负责查看,添加,修改,删除数据
django可以根据创建的模型类自动生成管理模块

管理模块的步骤:
1.管理界面本地化
在项目管理目录的settings中修改语言,时区
2.创建管理员
python manage.py createsuperuser
3.注册模型类
在应用下的admin中注册站点管理信息模型类中 admin.site.register(模型类类名)
4.自定义站点管理界面
在应用下的admin中自定义站点管理信息模型类,这个类继承于站点管理中的模型,这个类用于设置要展示的模型类中的属性,通过在list_display这个列表中添加字段名就可以了
然后注册信息模型类及站点管理类
admin.site.register(模型类类名,模型类站点管理类)

视图和URL
视图就是用来接收用户请求,处理逻辑,返回数据的模块
一个视图就是一个函数,视图的第一个参数是http请求类型的对象request,包含了所有的请求信息

如果不使用模板的话,视图必须返回Httpresponse(响应)独象,包含返回给请求者的响应信息。需要导入HttpResponse模块,从django.http中导入

如果使用了模板的话 返回
render(request,模板的路径,上下文(是一个字典,一般封装从数据库中查到的数据))返回html页面
上下文使用context{‘key’,’value’}

但是想要使用模板的话得现在项目管理目录下的设置文件中指明模板的加载路径(怎么指明?将项目路径与模板路径进行拼接,指明模板的路径)
项目的根路径:BASE_DIR

当用户在浏览器中输入中输入URL(网址)的时候,首先会从项目的管理目录的settints设置文件中ROOT_URLCONG(根路径的URL配置)属性,将URL传递给项目管理目录下的url.py这个文件(这个文件的作用就是应用路由配置,在这里配置URL正则,如果匹配成功j就把某个应用下的urls包含到这个项目中去 ,指明下一级如何匹配,然后再在应用的urls文件中正则匹配请求,如果请求成功,就执行应用vies中的某个函数去对应这个请求)
每次做请求地址的正则匹配的时候默认会找urls下的urlpatterns中的内容

str方法,其必需return一个字符串类型的数据,表示对对象的字符串描述一般在print输出这个对象的时候会被调用

项目文件的介绍:init.py:表示项目文件可以当做一个包来使用
settints.py:表示项目的正体配置文件
urls.py:表示项目的URL配置未见,也可以理解为请求的分发
wsgi.py:是项目与WSGI兼容的web服务器的入口
mange.py 项目运行的入口,指定了配置文件 命令管理工具?

应用下的文件介绍:
admin:后台站点管理的注册文件
init.py 表示这个应用可以当做一个包来使用
migeations: 用来做模型迁移,也就是创建表的 一般分为两步,第一步通过模型类生成创建表的语句,第二步迁移文件,也就是创建表
test.py:用来做测试
views.py:接受请求,逻辑处理,响应数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值