手寫簡易版web框架及初始Django

什麼是web應用?

Web應用程序是一種能夠經過Web訪問的應用程序,程序的最大好處是用戶很容易訪問應用程序,用戶只須要有瀏覽器便可,不須要再安裝其餘軟件html

軟件開發架構

​ c/s架構
​ 客戶端
​ 服務端
​ b/s架構
​ 瀏覽器
​ 服務器
​ 本質:b/s架構其實也是c/s架構前端

HTTP協議

​ 超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式
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 %}

簡易版本的web請求流程圖

templates
改文件夾存放就是全部的頁面文件(.html)django


手擼web簡易版本的web框架後端

什麼是web框架?

python三大主流web框架

​ Django:大而全,自帶了不少功能模塊,相似於航空母艦 (缺點:有點笨重)
​ Flask:短小精悍,自帶的功能模塊特別少,大部分都是依賴於第三方模塊(小而輕)
​ Tornado:異步非阻塞 主要用在處理高io 多路複用的狀況 能夠寫遊戲後端

a:socket
b:路由與視圖函數
c:模板渲染瀏覽器

Django:

​ a用的別人的 wsgiref
​ b本身寫的
​ c本身寫的
Flask:
​ a用的別人的 werkzeug
​ b本身寫的
​ c用的別人的 jinja2
Tornado:
​ a,b,c都是本身寫的緩存


注意事項(*****************************):

​ 1.計算機的名稱不能有中文
​ 2.一個pycharm窗口就是一個項目,不要多個項目放在一個窗口裏面
​ 3.項目名不能起中文




服務器

Django簡介

​ 版本問題
​ 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.必定記得清瀏覽器的緩存

app(應用)的概念

​ 一個django項目就是一所大學
​ app就是大學裏面的學院

注意新建立的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' # 也能夠簡寫
]

django各個文件的做用

應用名
migrations 數據庫遷移記錄相關數據
admin.py django後臺管理相關
models.py 模型表相關
views.py 視圖函數相關
項目名
settings.py 配置文件
urls.py 路由與視圖函數的映射關係
templates
項目用到的全部的html文件
manage.py
django入口文件

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識別到你的代碼變化以後會自動,可是有時候反應速度比較慢 你能夠手動重啓,你也能夠多刷新幾回瀏覽器

相關文章
相關標籤/搜索