mvc = model view controller
MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。
MVC模式解释成"外观"(view)、"机制"(controller)和"功能/数据"(model)这三层结构
django MTV模式
view是拿templates的静态页面,动态添加数据库对应的数据组成一个页面
day65 2018-06-15
1. 内容回顾
2. 今日内容 https://www.cnblogs.com/liwenzhou/p/8296964.html 1. Django框架详细介绍 1. 视图 views.py 1. FBV(function base view) 基于函数的视图 抛出一个问题: 函数的装饰器能不能直接用来装饰类中的方法 2. CBV(class base view) FBV(function base view) 3. 上传文件的注意事项: 1. 如果有上传文件,views.py中应该从request.FILES中取上传的文件对象 2. 如果有上传文件,html文件中的form表单一定要加 enctype="multipart/form-data" file_obj = request.FILES.get("touxiang") # 拿到上传文件对象 file_name = file_obj.name # 拿到文件名 with open(file_name, "wb") as f: # 在本地新建一个同名文件 for line in file_obj.chunks(): # 从上传的文件对象中一点一点读取数据 f.write(line) # 写到新建的文件中 4. JsonResponse Django封装的一个专门用来返回JSON格式数据的方法 from django.http import JsonResponse JsonResponse(字典) JsonResponse(列表,safe=False) 2. 模板语言 1. 目前已经学到的模板语言内容 1. { {变量}} 2. {% 逻辑操作 %} 1. for循环 {% for i in list %} { { i }} {% endfor %} forloop.counter forloop.counter0 forloop.last {% empty %} 2. if判断 {% if 条件 %} 条件成立要做的事儿 {% else %} 条件不成立要做的事儿 {% endif %} 3. 逻辑判断 1. in 判断 2. == 判断 1. 模板语言变量相关 1. 字典的key对应的值 { { dic.key}} 2. 列表按索引取值 { { list.1 }} 3. 对象的属性和方法 { { obj.name }} { { obj.dream }} --> 方法不要加括号 2. Filters (对变量做一些额外的操作) 1. 内置的filter 2. 自定义的filter 1. 在app下面新建一个Python package,包名必须叫 templatetags 2. 在上面的包中新建一个python文件,里面定义函数,并且注册到django的模板语言 from django import template # 生成一个用于注册自定义filter方法的实例 register = template.Library() @register.filter(name="sb") def add_sb(value): return "{} sb".format(value) 3. 使用自定义的filter方法 {% load py文件名 %} { { value|sb }} 3. tags 4. 母版与继承 1. 定义母版 --> 其他很多页面会用到的共用部分 我们可以提取出来放在单独的一个html文件中 2. 在母版中 通过定义不同的 block 等待子页面来替换对应的内容 3. 在子页面中 通过 {% extends 'base.html '%}来继承已经定义好的母版 4. 在子页面中通过 block 来实现自定义页面内容 5. 通常会在母版中定义 子页面专用的 page-css 和 page-js 两个块 5.组件 把功能相对独立的html代码 放在一个单独的文件中 作为组件 供其他页面使用 {% include 'nav.html' %}3. 端午节作业 1. 把今天上课的内容整理好blog 2. 把班级管理系统用母版和继承的方式改写一下 3. Django版代码行数统计系统 详细需求见群文件截图