• <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 入門教程


    目前的django知識都是源自對Resdig這個項目的開發過程的摸索
    先ad一波
    找各種電影視頻資源歡迎到Resdig.cn資源挖掘機
    logo_full.png

    #進入正題 DJANGO開發環境搭建流程
    #00_django安裝
    命令行輸入

    pip install django
    

    如果你是linux 并使用python3 可能需要將pip換成pip3


    #01_項目
    ##創建一個項目

    django-admin.py startproject testproject
    

    ##認識項目目錄
    此時你會看到當前目錄出現了一個文件夾

    這個文件夾就是我們的剛創建的項目文件夾
    其內部結構如下
    Annotation.png
    testproject/manage.py 是一個項目管理腳本 后面會經常用到
    testproject/testproject/ 內部結構如下

    Annotation.png
    在本教程中我們只需要關注該目錄下的兩個文件
    testproject/testproject/setting.py 這個文件是整個項目的配置文件
    testproject/testproject/urls.py 這個文件是整個項目的根路由配置文件
    ##運行服務并測試
    進入 testproject/ 并在該目錄打開powershell或cmd
    用python調用manage.py 讓在本地主機80端口啟動服務

    python manage.py runserver 0.0.0.0:80
    

    你會看到
    image.png
    訪問 127.0.0.1(linux 0.0.0.0)
    image.png
    這就ok了


    #應用的創建,認識,基本修改與測試
    #創建
    什么是應用? 前輩之前舉過一個例子:如果說項目project是一個大學,那么應用就是學院,每個學院有自己的特定工作.
    進入目錄 testproject/ 打開命令行

    python manage.py startapp testapp
    

    此時你會看到出現了一個 testapp文件夾 這就是我們的應用文件夾
    image.png
    ##認識
    進入testproject/testapp/你會看到這樣的目錄結構
    image.png
    考慮到入門在這里我們只關注一個文件
    testproject/testapp/views.py 它叫視圖 其中的函數是處理請求并作出響應的函數 是我們后端開發中的主戰場之一

    番外篇------------------Django的 MTV 開發模式
    M: models    模型  指的是數據庫
    T: templates 模板  指的是 html 模板
    V: views     視圖  指的是views.py 處理函數
    用一句話來概括 views/V視圖得到一個請求/request后對請求進行一些操作與判斷,然后調用合適的模板templates/T,并在數據庫models/M中提取相應的數據合成一個響應
    
    通俗的來說  顧客喊話(請求/request)來份大盤雞 大廚(視圖/views/V)翻出菜譜(模板/templates/T) 并從倉庫(模型/models/M)中拿出調料雞肉(數據)做出一份大盤雞(響應) 
    
    

    現在 我們來完善一下文件 在testproject/testapp/ 下建立 一個urls.py
    image.png
    此文件是testapp的url文件 由這個文件可以將請求指向views.py下的具體處理函數
    下面我們來一步一步配置一下url 理解下一個請求django是如何處理的
    01_修改根路由文件 testproject/testproject/urls.py

    """testproject URL Configuration
    
    The `urlpatterns` list routes URLs to views. For more information please see:
        https://docs.djangoproject.com/en/2.0/topics/http/urls/
    Examples:
    Function views
        1. Add an import:  from my_app import views
        2. Add a URL to urlpatterns:  path('', views.home, name='home')
    Class-based views
        1. Add an import:  from other_app.views import Home
        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
    Including another URLconf
        1. Import the include() function: from django.urls import include, path
        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
    """
    from django.contrib import admin
    from django.urls import path,include#引入include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('testapp/', include('testapp.urls')),#如果請求的路徑是'/testapp'則指向testapp的路由文件
    
    ]
    
    

    02_修改testapp的路由文件 testproject/testapp/urls.py

    from django.urls import path #引入path
    from . import views #引入testapp的views
    
    
    urlpatterns = [
        path('', views.home),#將testapp/路徑指向函數home
        path('page_1/', views.page_1),#將testapp/page_1路徑指向函數page_1
    ]
    
    

    03_修改views中的處理函數

    from django.shortcuts import render
    from django.http import HttpResponse,JsonResponse,HttpResponseNotAllowed,HttpResponseBadRequest#引入響應類
    
    
    # Create your views here.
    
    
    #定義你的函數 以請求request為輸入 以某個響應類作為返回 
    def home(request):
        return HttpResponse('hello world!  homepage is ok!')
    def page_1(request):
            return HttpResponse('this is a testapp in testproject!  page_1 is ok!')
    

    #####這樣我們可以看出 django是根據訪問路徑將請求通過根urls.py指向具體應用的urls.py 再由應用的urls.py指向應用的具體處理函數 處理函數處理后做出一個響應
    ##測試
    運行服務

    PS D:\project\testproject> python manage.py runserver 0.0.0.0:80
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    August 13, 2018 - 12:01:24
    Django version 2.0.7, using settings 'testproject.settings'
    Starting development server at http://0.0.0.0:80/
    Quit the server with CTRL-BREAK.
    

    訪問127.0.0.1/testapp/
    image.png
    訪問127.0.0.1/testapp/page_1/
    image.png

    命令行中會顯示訪問記錄

    [13/Aug/2018 12:06:24] "GET /testapp/ HTTP/1.1" 200 29
    [13/Aug/2018 12:06:37] "GET /testapp/page_1/ HTTP/1.1" 200 48
    

    #…未完待續…

    關于allow_host的問題。。。。
    關于csrf的問題
    我們可以在

    Forbidden (CSRF cookie not set.): /api/
    
    
    版權聲明:本文為weixin_42573248原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_42573248/article/details/102822231

    智能推薦

    docker部署簡易Django項目(詳細入門教程)

    百度找來的博客,關于docker部署Django的博客一大堆,但是可以說都是垃圾,要么語焉不詳、講的不明不白,要么排版極爛,一看就是復制粘貼,看了也只是浪費時間、自找麻煩。下面的教程是官方教程的翻譯和實踐(采坑),寫的十分詳盡,保證一步步全部解釋清楚,實驗環境為ubuntu18。 參考官方教程Quickstart: Compose and Django 一、前提準備 1、安裝docker 參考 h...

    Django教程 —— Django入門

    目標 了解虛擬環境,熟悉Django項目、manage.py的指令、配置文件。 使用Django框架有一個全面的認識,包括開發流程、基本概念要素。 創建自己的第一個Django項目——圖書管理系統(BMSTest)。 準備開發環境 編程語言 版本 Python 3.9.0 這篇博客安裝教程挺詳細的:Python環境安裝教程 第三方庫/框架 版本 說明 Django 3.1....

    Django入門教程(一):安裝python3.8及Django3.0

    python安裝 1.官方網站下載installer 2.勾選添加path,此處可以默認安裝也可以自定義安裝,我這里選擇了自定義 3.選next 4.選擇自己喜歡的安裝路徑,這里我忘記截圖了 5.如果此處出現了管理員圖標,則點擊,然后提示授權 6.查看python版本,證明安裝成功(即使安裝在D盤,也可以在C盤環境下執行python命令) Django安裝 1.升級一下pip 2.通過如下命令安裝...

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

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