mvc = model view controllercss
MVC是三個單詞的首字母縮寫,它們是Model(模型)、View(視圖)和Controller(控制)。html
MVC模式解釋成"外觀"(view)、"機制"(controller)和"功能/數據"(model)這三層結構python
django MTV模式數據庫
view是拿templates的靜態頁面,動態添加數據庫對應的數據組成一個頁面django
day65 2018-06-15mvc
1. 內容回顧
app
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版代碼行數統計系統
詳細需求見羣文件截圖函數