Web應用程序是一種能夠經過Web訪問的應用程序,程序的最大好處是用戶很容易訪問應用程序,用戶只須要有瀏覽器便可,不須要再安裝其餘軟件html
c/s架構
客戶端
服務端
b/s架構
瀏覽器
服務器
本質:b/s架構其實也是c/s架構前端
超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式
python
# 四大特性: 1.基於TCP/IP協議做用於應用層的協議 2.基於請求響應 3.無狀態 4.無鏈接 # 數據格式之請求: 請求首行 請求頭(一堆k,v鍵值對) 請求體(post請求攜帶的數據) # 數據格式之響應: 響應首行 響應頭(一堆k,v鍵值對) 響應體(post請求攜帶的數據)
# 響應狀態碼 1XX 服務器已經成功接受到你的數據正在處理,你能夠繼續提交其餘數據 2XX 請求成功 服務器已經將你請求的數據發送給你了 3XX 重定向 4XX 請求資源不存在 5XX 服務器錯誤
靜態網頁:
頁面上的數據都是寫死的,萬年不變
動態網頁:
頁面上的數據是從後端動態獲取的
好比後端獲取當前時間
後端獲取數據庫數據而後傳遞給前端頁面
web
後端生成的數據直接傳遞給前端頁面使用(而且前端頁面能夠靈活的操做改數據) >>> 模板語法
數據庫
模板渲染 模板語法須要依賴於第三方模塊 pip install jinja2 模板語法 jinja2支持前端直接使用相似於python的語法操做數據 <p>{{ user_dic }}</p> <p>{{ user_dic.name }}</p> <p>{{ user_dic['password'] }}</p> <p>{{ user_dic.get('name') }}</p> {% for user in user_dict %} <!--[{},{},{},{}]--> <tr> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.password }}</td> </tr> {% endfor %}
templates
改文件夾存放就是全部的頁面文件(.html)django
手擼web簡易版本的web框架後端
Django:大而全,自帶了不少功能模塊,相似於航空母艦 (缺點:有點笨重)
Flask:短小精悍,自帶的功能模塊特別少,大部分都是依賴於第三方模塊(小而輕)
Tornado:異步非阻塞 主要用在處理高io 多路複用的狀況 能夠寫遊戲後端
a:socket
b:路由與視圖函數
c:模板渲染瀏覽器
a用的別人的 wsgiref
b本身寫的
c本身寫的
Flask:
a用的別人的 werkzeug
b本身寫的
c用的別人的 jinja2
Tornado:
a,b,c都是本身寫的緩存
1.計算機的名稱不能有中文
2.一個pycharm窗口就是一個項目,不要多個項目放在一個窗口裏面
3.項目名不能起中文
服務器
版本問題
djang下載
推薦下載1.11.11版本
命令行直接下載
pip3 install django==1.11.11
pycharm下載
驗證是否下載成功 django-admin
建立django項目的方式 方式1(命令行建立): 建立django項目 django-admin startproject 項目名 建立app應用 python3 manage.py startapp app01 啓動django項目 python3 manage.py runserver ps:用命令行建立django默認不會自動建立templates文件夾 須要你手動本身建立(注意改文件夾路徑是否被添加配置文件中)
方式2(pycharm建立) FILE >>> new project 選擇第二個django 須要注意名字不能有中文,選擇本地的解釋器,勾選後臺管理 建立app pycharm命令行建立 python3 manage.py startapp app01 Tools下面run manage task功能欄 啓動點小綠色箭頭 強調: 1.用django必定要保證只有一個在運行狀態 切記切記!!!!!!! 2.必定記得清瀏覽器的緩存
一個django項目就是一所大學
app就是大學裏面的學院
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config' # 能夠用全稱
'app01' # 也能夠簡寫
]
應用名
migrations 數據庫遷移記錄相關數據
admin.py django後臺管理相關
models.py 模型表相關
views.py 視圖函數相關
項目名
settings.py 配置文件
urls.py 路由與視圖函數的映射關係
templates
項目用到的全部的html文件
manage.py
django入口文件
from django.shortcuts import render,HttpResponse,redirect
HttpResponse 返回字符串
render 返回一個html頁面
兩種給前端頁面傳值的方式
def reg(request):
user_dict = {'name':'jason','password':'123'}
return render(request,'reg.html',{'user_dict':user_dict})
def reg(request): user_dict = {'name':'jason','password':'123'} return render(request,'reg.html',locals())
redirect 重定向
django識別到你的代碼變化以後會自動,可是有時候反應速度比較慢 你能夠手動重啓,你也能夠多刷新幾回瀏覽器