• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 【Django】簡介和 hello Django

    標簽: python碎碎念  python  django  數據庫

    Django 簡介

    Django 最初發布在 2005 年,是當前 python 比較成熟且知名的網絡框架,最初被用來制作 新聞站點django 的官方網站:https://www.djangoproject.com/;django 采用的是 MVC 的框架模式,因為一個Django 項目由 models view 和 templates 組成,所以也被叫做 MVT 的設計模式

    MVC 設計模式

    MVC 是一種業務邏輯,使數據和界面顯示進行分離,將業務邏輯聚集到一個部件里面,代碼復用率高。MVC 被發展起來用來實現映射傳統的輸入,處理 和邏輯輸出功能;MVC 的核心思想是 解耦;最大優點是 方便代碼復用。

    MVC :M:Model: 是提供數據處理的服務性接口,在服務端對數據進行處理,實現對數據增刪改查的相關功能;V: View : 負責數據的展示和呈現,也就是實現在客戶端或者瀏覽器中向用戶展示數據;C : Controller : 實現對數據進行增刪改查的控制動作,(比如調用方法對特定的數據進行查詢)
    在這里插入圖片描述

    **如圖:**首先通過 Controller 接收用戶輸入的操作,并通過 Controller 將用戶的數據操作指令傳輸給 Model 通過 Model 在服務端對用戶需要的數據進行操作,并將最后的結果返回給 View :View 的功能是向用戶顯示對應的數據。

    Django 的 MVT 設計模式

    在這里插入圖片描述

    上圖是比較適合 Django 的設計模式 和用戶數查詢流程:首先使用 Controller 接收用戶的 request ,并將請求內容傳送給 Model ;通過 Model 實現服務端的數據查詢和操作,將最后的結果返回給 Controller ,最后 Controller 將獲取的數據(data)傳輸給 View ;view 的功能是向用戶展示數據。

    MVT 與 MVC 的異同

    • M:Model :負責業務對象和數據庫對象
    • V:View :負責業務邏輯,比能在適當的時候調用 Model 和 Template(相當于 MVC 的 controller)
    • T :Template :負責把頁面展示給用戶(相當于 MVC 的 view)
    • 注意:Django 中還有一個 URL 分發器,主要用于將一個 url 分發給不同的 View 進行處理,然后View 在調用相應的 Model 和template
    Django 的工作模式

    在這里插入圖片描述
    用戶發送的請求首先會被 URL 控制器接收,并根據規則發送給對應的 view 視圖函數 進行控制和數據操作;View 接著對Models 發送數據請求,通過 models 從數據庫中查詢數據;必能降最后的結果返回給 View ;View 調用 template 將返回的數據渲染成對應的模板數據展示給用戶

    Django 認識補充

    Django 自帶一個 開發者服務器 ;通過命令 runserver 快速部署,但是這個服務器性能比較低,一般只在開發的時候使用;

    Django 是一個重量級框架,自帶的插件很多

    Hello Django

    使用 win10 系統之下的 pycharm 進行新建 Django 項目

    在這里插入圖片描述

    win 10 的pycharm 工具在創建一個新的 Django 項目的時候會新建一個虛擬環境 (virtualenv),等待項目加載完畢,便會出現這樣的一個目錄

    在這里插入圖片描述

    在目錄文件下會多出一個與項目同名的包,其中__init__.py是包標識文件,說明了這個目錄是一個python包,settings.py是這個項目的設置文件;urls.py:是這個項目的url 管理文件;wsgi.py的作用是用來做項目的遷移。

    再初步打開這個項目之后,我們在terminal 終端中輸入以下命令:

    (HelloDjagodemo) F:\preprojects\django\HelloDjagodemo>python manage.py startapp App
    

    下載創建第一個 App 項目文件,命令執行結束之后會在項目目錄內生成對應的 App 文件包
    在這里插入圖片描述

    其中 migrations 包的作用是項目遷移;__init__.py:說明這個目錄是一個python包;admin.py:管理員包管理工具;models:用于處理數據模型,實現功能的方法;views: 用于傳遞控制信息和調用template返回結果的函數視圖。

    **運行項目:**在terminal中輸入以下代碼:

    >python manage.py runserver            # 運行項目的命令
    # 此時項目會在 Django 自帶的服務器中運行
    # 項目成功運行會輸出以下信息
    Run 'python manage.py migrate' to apply them.     #(省略一部分未部署提示)
    May 25, 2020 - 11:40:33        # 以下信息說明了項目成功運行,項目默認的端口是 8000
    Django version 3.0.6, using settings 'HelloDjagodemo.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    

    此時我們可以在瀏覽器中訪問這個項目;
    在這里插入圖片描述

    注意點:使用 pycharm 打開 Django 工程的時候要保證是在 manage.py 的上一級(選中 manage.py 的上一級文件夾打開一個 Django 工程)

    settings 文件解析

    因為 settings 文件是Django 項目的整體設置文件,以下對于 Django 項目的設置文件settings.py進行相關的參數解析

    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # 參數 : BASE_DIR:指的是調用的項目所在的根目錄
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 'j_uxgnz&slrrrz44x8m18+1$cb4qzhpn)$+zstmcyghe%w2-=j'
    # 參數:SECURT_KEY:指的是在生產環境中項目使用的**(注意是生產環境不是開發環境)
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    # 在開發環境中,打開 Django 的調試模式
    
    ALLOWED_HOSTS = ["*"]
    # 允許通過的主機名,一般設置成 * 通配符,允許任意域名的主機訪問
    
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    # INSTALLED_APPS =[]:這個列表展示了在 Django 項目創建的過程中安裝的功能
    
    # 代指中間件
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    
    # 模板的相關參數和插件
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    
    # 用于遷移的app 參數
    WSGI_APPLICATION = 'HelloDjagodemo.wsgi.application'
    
    # 剛開始默認的數據庫環境是 SQLlite
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    # 時間與語言設置(第一個參數語言設置默認是英語)
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    --------------------------
    LANGUAGE_CODE = 'zh-hans'
    
    TIME_ZONE = 'Aisa/Shanghai'
    # 修改成為本地時間
    

    當修改了時間和語言之后,我們再次運行項目,發現起始界面變成了中文

    在這里插入圖片描述

    在 pycharm 中配置數據庫可視化(以案例SQLlite為例)

    在 win 10 的 默認pycharm 程序中 右擊對應的數據庫文件沒有 as data source 選項,這個時候需要點擊軟件右側的 database 進行手動配置,點擊 database 彈出框的 + 在 data source 中選擇對應的數據源文件(文件類型,這里選擇的是SQLlite)

    在這里插入圖片描述

    配置文件的對應路徑(在 File: 選框中填充對應的文件路徑即可/也就是選擇到對應的文件)
    在這里插入圖片描述

    點擊應用–確定,配置成功。
    在這里插入圖片描述

    對 Django 項目進行遷移部署

    在直接運行項目的時候我們發現會有以下提示:

    You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, ses
    sions.
    Run 'python manage.py migrate' to apply them.
    

    表明項目沒有進行部署,這個時候我們需要使用命令:

    # 命令:
    >python manage.py migrate     # 這個命令是關于 Django 項目的遷移部署
    # 輸出信息
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
    ...
    

    在部署過程結束后,我們打開 database – 刷新 發現數據表多出了部署后的部分

    在這里插入圖片描述

    此時對于這個項目的基本設置和部署,已經全部完成了

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

    智能推薦

    Django Hello,Word!(Windows10)

    Windows10 源碼安裝     Django 下載地址:https://www.djangoproject.com/download/     下載 Django 壓縮包,解壓并和Python安裝目錄放在同一個根目錄,進入 Django 目錄,執行python setup.py install,然后開始安裝,Django將要被安裝到Pytho...

    Python(5)——Django之hello Python

    為什么80%的碼農都做不了架構師?>>>      1、 eclipse-->New Python Django project-->hello     會默認生成四個文件,待會再詳細說這四個文件。 2、右鍵src下的hello新建python moduel,index.py 3、修改urls.py文件: 4、run ...

    Python web模版Django-06 Hello Django [用模版]

    在上一篇文章Django-05中,實現展現"Hello Django!"并沒有用模版,而是直接用的Httpresponse方法實現的。 這篇文章中將嘗試用Django模版來實現"Hello Django!"。 step1: 在sign 目錄下創建文件夾 "templates",注意文件夾名字不要寫錯,然后在文件夾下創建index.html...

    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 以上述例子,判斷一個生產出...

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