頁面上的數據都是寫死的,萬年不變
頁面上的數據是從後端動態獲取的 好比後端獲取當前時間 後端獲取數據庫數據而後傳遞給前端頁面
{{ user_dic }}html
{{ user_dic.name }}前端
{{ user_dic['password'] }}python
{{ user_dic.get('name') }}web
Django:大而全,自帶了不少功能模塊,相似於航空母艦 (缺點:有點笨重)數據庫
Flask:短小精悍,自帶的功能模塊特別少,大部分都是依賴於第三方模塊(小而輕)django
Tornado:異步非阻塞 主要用在處理高io 多路複用的狀況 能夠寫遊戲後端後端
Django:
a用的別人的 wsgiref
b本身寫的
c本身寫的
Flask:
a用的別人的 werkzeug
b本身寫的
c用的別人的 jinja2
Tornado:
a,b,c都是本身寫的瀏覽器
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config' # 能夠用全稱 'app01' # 也能夠簡寫 ]
建立django項目緩存
django-admin startproject 項目名服務器
建立app應用
python3 manage.py startapp app01
啓動django項目
python3 manage.py runserver
ps:用命令行建立django默認不會自動建立templates文件夾
須要你手動本身建立(注意改文件夾路徑是否被添加配置文件中)
migrations 數據庫遷移記錄相關數據 admin.py django後臺管理相關 models.py 模型表相關 views.py 視圖函數相關
settings.py 配置文件 urls.py 路由與視圖函數的映射關係
項目用到的全部的html文件
django入口文件
ps: 全部請求都會返回一個HttpResponse是對的! 本質 render, redirect源碼裏面返回的都是HttpResponse,
好比
render: HttpResponse(content, content_type, status)
redirect:
def redirect(to, *args, **kwargs): if kwargs.pop('permanent', False): redirect_class = HttpResponsePermanentRedirect else: redirect_class = HttpResponseRedirect return redirect_class(resolve_url(to, *args, **kwargs))