Django架構說明

Django採用了MVT的軟件設計模式,即模型M,業務代碼V和模板T。

本文介紹了Django運行的基本配置。


一、構建簡單的MVT模型(三個文件夾,存放三種不同類型的文件):

    1、目錄:

            models:存放數據庫模型目錄

            template:存放模板文件目錄

            views:存放控制代碼目錄


二、Django基本說明:

        1、安裝:把python目錄添加到系統的環境變量

pip install Django        //使用python的pip命令安裝Django


        2、使用manager.py新建項目:把Django目錄添加到系統環境變量

            新建項目時,Django自動創建項目的目錄:

            -項目名:

                -manage.py:命令行管理工具,提供了與Django交互的接口。

                    常用命令,startapp name新建APP、makemagrations、migrate(Django的ORM)

                -項目包名:以項目包命名的容器,主要實現配置和和管理功能。

                    -__init__.py:代表python一個包,python2.0必須有,才能代表是一個包,python3可以沒有

                    -settings.py:項目的配置文件,配置靜態文件地址和

                    -urls.py:配置網站目錄,指定網址轉向哪個文件。

                    -wsgi.py:一個 WSGI 兼容的 Web 服務器的接口,以便運行你的項目。它定義了TCP連接、HTTP原始請求和響應格式。

django-admin.exe startproject mysite        //新建項目,名爲mysite

        3、啓動項目:啓動後就可以使用web瀏覽器訪問該網站

cd mysite               //進入mysite目錄
python manage.py runserver 127.0.0.1:8000       //可以省略ip:port,默認本機ip和8000端口,也可指定ip:端口

        4、創建一個APP:

                APP:相當於整個網站的一個模塊。比如:主站(index)\BBS\BLOG\Video\News等等,每一個都是一個獨立的頁面或功能。

python manage.py startapp blog            //新建一個名字是blog的APP

                新APP默認目錄:

                -migrations包:修改數據表結構

                -__init__:代表APP是個包。。。

                -apps.py:配置當前App

                -models.py:ORM,寫指定的類,通過命令可以創建數據庫結構。

                -tests.py:單元測試

                -views.py:業務代碼,存放後臺處理的代碼。

#配置urls.py指定網址訪問的頁面。APP要導入到views文件
import blog.views
#在urlpatterns列表添加下面值
url(r'^blog',blog.views.login),


        5、templates和static文件夾:新建項目後需要創建這兩個文件夾。

            templates:存放.html類型的模板文件,在urls.py中可以更改設置

            static:存放靜態文件,比如JS/jQuery/CSS類型的文件,在settings.py中設置才能正常被使用。

                        根據個人喜好設置,可以在每個APP下設置,也可在manage.py同級目錄設定通用的static,

            以上兩個文件夾創建後的設置:

#增加settings.py文件templates的設置:
TEMPLATES = ['DIRS': [os.path.join(BASE_DIR,'templates')]]   //修改dirs的值,指定爲主目錄下的templates文件夾

#增加settings.py的static目錄的設置
STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)

        6、幾個錯誤:

            1)、form請求錯誤,原因:form裏的action帶/,django裏的urls地址路由沒帶/,只在django框架裏的錯誤,

            解決方法,兩處/都刪掉或都加/


            2)、運行csrf錯誤,註釋掉csrf行,以後會對csrf進行設置 


            3)、指定全局static目錄後,無法加載CSS樣式,提示Resource interpreted as Stylesheet but transferred with MIME type application/x-css

#html加載的CSS文件
<link rel='style' texttype='text/css' href='/static/css.css'/>
#解決方法:在html首行加
{%load static%}
#如果不想每次在模版中加載靜態文件都使用load加載static標籤,那麼可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以後在模版中就可以直接使用static標籤,而不用手動的load了。
'django.contrib.auth.middleware.AuthenticationMiddleware',



三、總結一個完整的HTTP請求過程:

        image.png







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章