• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python框架篇之Django(初識Django)

    標簽: 數據庫  python  django  程序人生  經驗分享

    一、Web框架與Django本質

    1、Web框架的理解
    框架,特指為解決一個開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫你快速開發特定的系統。對于所有的Web應用,實際上就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。

    2、Django的本質
    Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MTV的框架模式,即模型M,視圖V和模版T。簡單來說,就是Django給我們提供了一個非常完善的Web框架,我們只需要對其中的文件進行修改與增加內容,就能輕松實現請求與響應的基本功能,最終渲染出對應的網頁。

    3、MVC模式
    MVC就是把web應用分為模型(M),控制器,視圖(V)三層;他們之間以一種插件似的,松耦合的方式連接在一起。模型負責業務對象與數據庫的對象(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求。

    4、MTV模式
    MTV模式本質上與MVC模式沒有什么差別,也是各組件之間為了保持松耦合關系,只是定義上有些許不同:

    • Model(模型):負責業務對象與數據庫的對象(ORM)
    • Template(模版):負責如何把頁面展示給用戶
    • View(視圖):負責業務邏輯,并在適當的時候調用Model和Template
      另外還有一個路由分發器,即url分發器,它能將一個個URL的頁面請求分發給不同的view處理,view再調用相應的Model和Template。

    5、Django的框架
    15
    圖片引自:老男孩python運維開發資料

    二、從安裝到實現一個完整的Django項目

    1、Django的安裝
    在cmd命令行窗口中,進入Python的安裝目錄,再進入目錄Scripts,然后的輸入pip install django
    1

    2、創建一個Django項目
    依然是在命令行窗口中,先cd進入你需要創建項目的目錄中或者Django的bin目錄中,再輸入django-admin startproject 項目名,就可以創建一個Django項目了
    2
    創建完一個項目之后,相當于有了一個框架,但是我還需要創建一個應用或者多個,每一個應用就是一個功能,比如QQ有聊天功能,還有瀏覽空間的功能。manage.py startapp 項目名,比如我輸入

    manage.py startapp blog
    

    3

    • manage.py文件:就是整個項目的執行文件

    在我們創建的這個blog應用里面,有其中幾個重要文件對應的功能是:
    4
    另外,mysite目錄是一個全局作用的,在里面有
    6

    • urls.py文件:路由分發功能的實現
    • settings.py文件:存放于該Django項目相關的所有配置信息

    在settings.py里面我們需要將自定義的應用也添加進去:
    5
    3、在pycharm中創建Django項目
    7
    在pycharm中創建完一個項目之后,假如我們要實現一個進入自定義的一個網址,服務端就會返回一個準確的時間。首先我們在urls.py文件里添加上這個路徑并綁定應用函數:
    8
    然后我們在創建的應用文件夾里的views.py文件里寫上我們的顯示時間的函數:
    9

    然后我們需要導入views.py文件,才能調用那個顯示時間的應用函數:
    10
    4、返回一個時間
    templates:用來存放頁面(html文件)的目錄
    11
    返回頁面需要帶上形參:

    return render(req,"index.html")
    

    在html文件中兩個大括號渲染的變量,在python中定義同名的變量,然后可以用locals()直接引用:

    # html文件中
    <h2>Now:{{ t }}</h2>
    
    # python文件中
    t=time.ctime()
    return render(req,"index.html",locals())
    

    5、啟動Django項目
    runserver:啟動Django項目(在終端中輸入)
    12
    然后就會返回一個網址,這個就是我們訪問的主頁:
    13

    6、Django項目效果
    14
    這樣,一個最簡單卻很完整的Django項目就完成了

    7、views.py代碼

    from django.shortcuts import render,HttpResponse
    # 還必須導入HttpResponse模塊,才可以將python定義的內容返回給前端去顯示
    import time
    
    # Create your views here.
    
    # 這個req形參是瀏覽器發送給服務端的全部信息,服務端打包后傳入到該函數的一個對象
    def show_time(req):
        # return HttpResponse("Welcome to my blog!")
        t=time.ctime()
        return render(req,"index.html",locals())
    

    可以看到在整個網頁的形成與渲染過程中,應用函數show_time僅僅只用了3行代碼就實現了,可以說Django是非常得高效與便捷

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

    智能推薦

    python之web開發框架(Django)

    目錄 前言 Django項目的創建 創建模塊 修改配置以及創建界面 連接數據庫 可以開始測試 前言 web的開發的開發框架現流行的框架有Django,Flask,Tornado 本次使用的開發框架為Django,使用的版本為2.2.7 最新版本可以更新pip install -U Django Django項目的創建 下載Django包命令:pip install Django 創建項目的話如果是...

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    猜你喜歡

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    styled-components —— React 中的 CSS 最佳實踐

    https://zhuanlan.zhihu.com/p/29344146 Styled-components 是目前 React 樣式方案中最受關注的一種,它既具備了 css-in-js 的模塊化與參數化優點,又完全使用CSS的書寫習慣,不會引起額外的學習成本。本文是 styled-components 作者之一 Max Stoiber 所寫,首先總結了前端組件化樣式中的最佳實踐原則,然后在此基...

    基于TCP/IP的網絡聊天室用Java來實現

    基于TCP/IP的網絡聊天室實現 開發工具:eclipse 開發環境:jdk1.8 發送端 接收端 工具類 運行截圖...

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