了解Django之前
?
什么是web應用?
通俗地講,就是通過瀏覽器訪問一個網址,該網站從后臺調取數據,然后把相應的界面展示給用戶這樣的一個過程。
?
什么是HTTP協議?
即超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式
?
四大特性:
1、基于TCP / IP 協議作用于應用層的協議
2、基于請求響應(一次請求對應一次響應)
3、無狀態(不保留客戶端的狀態,每次待你如初見)
4、無鏈接(HTTP接受一次請求之后就會馬上斷開,但并不是斷開了TCP)
擴展:針對無鏈接還有反向的一個websoceke技術,這是用來保持常鏈接的。
?
數據格式之請求:
請求首行
請求頭 (一堆k,v鍵值對)
(這里是空格,不是代表沒有)
請求體(post請求攜帶的數據)(get請求攜帶的參數放在URL后用一個問號隔開,第一數據不安全,第二是傳輸的大小也有限制)
數據格式之響應:
響應首行
響應頭 (一堆k,v鍵值對)
(空格)
響應體(post請求攜帶的數據)
?
響應狀態碼:
1xx 服務器已經成功接收到你的數據正在處理,你可以繼續提交其他數據
2xx 請求成功 服務器已經將你請求的數據發送給你了
3xx 重定向
4xx 請求資源不存在
5xx 服務器錯誤
?
動靜態網頁
靜態網頁:
頁面上的數據都是寫死的,萬年不變的。
動態網頁:
頁面上的數據是從后端動態獲取的
比如后端獲取當前時間
后端獲取數據庫數據然后傳遞給前端頁面
?
模板渲染
后端生成的數據直接傳遞給前端頁面使用(并且前端頁面也可以靈活地操作該數據) >>>模板語法
模板渲染 模板語法需要依賴于第三方模塊
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框架流程圖
什么是web框架?
目前Python 三大主流的web框架
Django :大而全,自帶了很多功能模塊,相當于web框架界的航空母艦(缺點:因為太大導致文件內容較多)
? Flask:短小精悍,自帶的功能模塊少,大部分都依賴一第三方模塊,但是因為精簡導致內容易于理解
Tornado:異步非阻塞 主要用在處理高IO 多路復用的情況 一般游戲后端用的比較多
?
web框架功能分為三個部分
a:socket (服務)
b:路由與視圖函數
c:模板渲染
?
Django:
a:用別人的 wsgiref
b:自己寫的
c:自己寫的
Flask:
a:用別人的 werkzeug
b:自己寫的
c:用別人的 jinja2
Tornado:
a,b,c 都是自己寫的
?
注意,在運行Django的時候:
1、計算機的名稱不能有中文
2、一個pycharm窗口就是一個項目,不要多個項目放在一個窗口里面
3、項目名不能起中文
?
?Django簡介
一般下載1.xx.xx版本
? 命令行下載:pip3 install Django == 1.11.11
驗證是否下載成功
Django - admin
?
創建Django項目的方式
方式一(命令行創建):
創建Django項目
Django-admin startproject
創建app應用
Python3? manage.py? startapp? app01
啟動Django項目
python3? manage.py? runserver
注意:用命令行創建Django默認不會自動創建templates(用來存放所有的HTML文件的地方)文件夾
? ? 需要自己手動創建(在settings中查看該文件夾是否加入了環境變量中,沒有要記得手動添加)
?
? 方式二(pycharm創建):
? file>new project 選擇Django 注意:1、名字不能有中文? 2、選擇本地解釋器 3、勾選后臺管理
創建app
pycharm命令行創建
python3? manage.py? startapp? app01
Tools? 下面 run manage task 功能欄 省略了python3? manage.py 直接輸入startapp即可創建
? 強調:
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 重定向(跳轉到其他指定URL或頁面等)
?
django識別到代碼變化之后會自動刷新,但是有時候反應速度比較慢
可以手動重啟,也可以手動刷新瀏覽器
?
轉載于:https://www.cnblogs.com/SlookUp/p/10981231.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的了解Django之前的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Locust接口性能测试
- 下一篇: openstack——horizon篇