• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • WEB框架與Django簡介

    WEB框架與Django簡介

    HTTP協議:

    ? 超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式

    四大特性:

    1.基于TCP/IP協議作用于應用層的協議
    
    2.基于請求響應
    
    3.無狀態
    
    4.無連接

    數據格式之請求:

    1.請求首行
    2.請求頭(一堆k,v鍵值對)
    3.                           //空格不能忘了
    4.請求體(post請求攜帶的數據)

    數據格式之響應:

    1.響應首行
    2.響應頭(一堆k,v鍵值對)
    3.                             //空格不能忘
    4.響應體(post請求攜帶的數據)

    響應狀態碼:

    1xx   服務器已經成功接收到數據正在處理,可以繼續提交其他數據
    2xx   請求成功 服務器已經將你請求的數據發送給你了
    3xx   重定向
    4xx   請求資源不存在
    5xx   服務器錯誤

    動靜態網頁:

    靜態網頁:

    ? 頁面上的數據都是寫死的,萬年不變

    動態網頁:

    ? 頁面上的數據是從后端動態獲取的

    模板渲染

    后端生成的數據直接傳遞給前端頁面使用(并且前端頁面可以靈活的操作修改數據)

    模板語法需要依賴于第三方模塊jinja2

    from jinja2 import Temlate

    模板語法 jinjia2支持前端直接使用類似于python的語法操作數據

    <!--user_dic是后端定義的變量-->
    <p>{{user_dic}}</p>
    <p>{{user_dic.name}}</p>
    <p>{{user_dic['password']}}</p>
    <p>{{user_dic.get('name')}}</p>
    
    <!--連接數據庫-->
    {% for user in user_dic}   <!--數據格式[{},{},{}]-->
        <tr>
            <td>{{user_dic.id}}</td>
            <td>{{user_dic.name}}</td>
            <td>{{user_dic.password}}</td>   
        </tr>
    {% endfor %}

    簡易版本的web請求流程圖

    1635178-20190605172108566-60693890.jpg

    web框架

    python三大主流框架:

    Django:大而全,自帶了很多功能模塊,類似于航空母艦(缺點:笨重)
    
    Flask:短小精悍,自帶的功能模塊特別少,大部分都是依賴于第三方模塊(小而輕)
    
    Tornado:異步非阻塞,主要用在處理高io,多路復用的情況,可以寫游戲后端

    各自特點:

    Django:socket用的別人的wsgiref
           路由與視圖函數自己寫的
           模板渲染自己寫的
    
    Flask:socket用的別人的werkzeug
          路由與視圖函數自己寫的
          模板渲染用的別人的jinja2
    
    Tornado:socket、路由與視圖函數、模板渲染都是自己寫的

    Django簡介

    注意:

    • 1.計算機的名稱不能有中文
    • 2.一個pycharm窗口就是一個項目,不要多個項目放在一個窗口里面
    • 3.項目名不能起中文
    django下載:版本問題推薦下載1.11.11版本
    命令行直接下載:pip3 install django==1.11.11
    驗證是否下載成功:django-admin

    創建django項目的方式:

    方式一(命令行創建):
        創建Django項目:django-admin startproject 項目名
        創建app應用:python3 manage.py startapp app01
        啟動django項目:python3 manage.py runserver
        ps:用命令行創建django默認不會自動創建templates文件夾,需要你手動自己創建(注意改文件夾路勁是否被添加配置文件中)
    方拾二(pycharm創建):
        FILE => new project選擇第二個,django,需要注意名字不能有中文,選擇本地的解釋器,勾選后臺管理
        創建app:1.pycharm命令行鍵
                    python3 manage.py startapp app01
                2.Tools下面run manage task功能欄
        啟動:點綠色小箭頭
        
    強調:
        1.用jdango一定要保證只有一個在運行狀態
        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各個文件的作用

    應用名:
        migration  數據遷移記錄相關數據
        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:內部傳入一個字符串,返回給瀏覽器
    def index(request):
        #邏輯代碼
        return HttpResonse('ok')
    render:

    除request參數外還接受一個待渲染的模板文件和一個保存具體數據的字典參數,將數據填充進模板文件,最后把結果返回給瀏覽器

    兩種給前端頁面傳值的方式:

    def reg(request):
        user_dic = {'name':'lucas','age':18}
        return render(request,'reg.html',{'user_dic':user_dic})
    def reg(request):
        user_dic = {'name':'lucas','age':18}
        return render(request,'reg.html',locals())  #會把上面定義的全部變量傳給前端頁面
    redirect:重定向

    接收一個URL參數,表示跳轉到指定的URL

    def index(request):
        #業務邏輯
        return redirect('www.baidu.com')

    版權聲明:本文為weixin_30376453原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_30376453/article/details/96894184

    智能推薦

    Django Web框架

    通過cmd命令行來新建一個web框架工程 先切換到指定的文件目錄下,然后輸入 生成框架如下 框架文件說明: 第一個mysite:外層目錄,名字可以更改 第二個mysite:工程目錄,用來保存代碼和文件 _init_:一個將mysite定義為包的空文件,用來初始化 settings:部署和配置整個工程的配置文件 urls:URL路由的聲明文件 wsgi:基于WSGI的web服務器配置文件 manag...

    Django Web框架02

    《Django Web框架》 目錄 文章目錄 《Django Web框架》 目錄 Django的框架設計模式 模板 Templates Django 模板語言 模板的傳參 模板的變量 XSS攻擊 反射型xss 存儲型xss DOM xss 模板的標簽 過濾器 模板的繼承 url 反向解析 Django的框架設計模式 MVC 設計模式 MVC 代表 Model-View-Controller(模型-...

    Hue之Django框架簡介

    背景簡介 Django是一個由Python語言編寫的開源的Web應用框架。Django框架本身是基于Mode(模型)+View(視圖)+Controller(控制器)的設計模式,準確來說應該是MVT(T代表Template),這種模式簡化了程序的修改和擴展,提高了代碼的復用率。Django實現了將前后端進行解耦,提高了開發效率,使得開發人員只需協商好兩者之間的接口就可以獨立開發自己的部分,避免了重...

    Django之web框架應用與MTV模型

    上次提到的Django之wsgi協議應用,基于wsgiref模塊DIY一個web框架引的確是幫我們省了很多事情,當然強大的Django web框架早已替我們封裝好了一切,開箱即用~ 1、MVC與MTV模型 1.1 MVC Web服務器開發領域里著名的MVC模式,所謂MVC就是把Web應用分為模型(M)、控制器(C)和視圖(V)三層,他們之間以一種插件式的、松耦合的方式連接在一起,模型負責業務對象與...

    Python Web框架: Django基礎與項目搭建

    框架要點 1. Web應用程序處理流程 2. Web程序框架的意義 用于搭建Web應用程序 免去不同Web應用相同代碼部分的重復編寫,只需關心Web應用核心的業務邏輯實現 3. Web應用程序的本質 接收并解析HTTP請求,獲取具體的請求信息 處理本次HTTP請求,即完成本次請求的業務邏輯處理 構造并返回處理結果——HTTP響應 4. Web框架學習方法 如何搭建工程程序 ...

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡