Django基本設置

Dango設置流程圖片示例:css

設置路由時須要注意的一個點是:Django中定義路由時,一般習慣以斜線 / 結尾html

 

 

其餘經常使用命令:前端

 

  python manage.py runserver 0.0.0.0:80     開啓
     django-admin startproject 項目名               project項目
  python manage.py startapp                        app名字
  python manage.py makemigrations          生成遷移文件
  python manage.py migrate                      生成數據庫表
python

      python manage.py createsuperuser          建立超級管理員
jquery

 

一.django簡單實現流程

複製代碼
django
    #安裝: pip3 install django  添加環境變量 #1 建立project django-admin startproject mysite ---mysite ---settings.py ---url.py ---wsgi.py ---- manage.py(啓動文件) #2 建立APP  python mannage.py startapp app01 #3 settings配置
    
    INSTALLED_APPS 中註冊 app01

     MIDDLEWARE 中註釋掉csrf #'django.middleware.csrf.CsrfViewMiddleware',
TEMPLATES 中添加 'DIRS': [os.path.join(BASE_DIR, "templates")],

     LANGUAGE_CODE = 'zh_Hans' # 漢語
TIME_ZONE = 'Asia/Shanghai' # 時區

STATICFILES_DIRS=( os.path.join(BASE_DIR,"static"), # 靜態文件真實路徑 ) STATIC_URL = '/static/' # 別名 url訪問的路徑 # 咱們只能用 STATIC_URL,但STATIC_URL會按着你的STATICFILES_DIRS去找#4 根據需求設計代碼 url.py view.py #5 使用模版 render(req,"index.html") #6 啓動項目 python manage.py runserver 127.0.0.1:8090 #7 鏈接數據庫,操做數據 model.py
複製代碼

django的命令行工具

django-admin.py 是Django的一個用於管理任務的命令行工具,manage.py是對django-admin.py的簡單包裝,每個Django Project裏都會有一個mannage.py。nginx

<1> 建立一個django工程 : django-admin.py startproject mysiteweb

        當前目錄下會生成mysite的工程,目錄結構以下:shell

       

  • manage.py ----- Django項目裏面的工具,經過它能夠調用django shell和數據庫等。
  • settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標誌以及其餘一些工做的變量。
  • urls.py ----- 負責把URL模式映射到應用程序。

<2>在mysite目錄下建立blog應用: python manage.py startapp blog數據庫

       

<3>啓動django項目:python manage.py runserver 8080django

       這樣咱們的django就啓動起來了!當咱們訪問:http://127.0.0.1:8080/時就能夠看到:

       

<4>生成同步數據庫的腳本:python manage.py makemigrations  

                     同步數據庫:  python manage.py migrate   

       注意:在開發過程當中,數據庫同步誤操做以後,不免會遇到後面不能同步成功的狀況,解決這個問題的一個簡單粗暴方法是把migrations目錄下

                的腳本(除__init__.py以外)所有刪掉,再把數據庫刪掉以後建立一個新的數據庫,數據庫同步操做再從新作一遍。            

<5>當咱們訪問http://127.0.0.1:8080/admin/時,會出現:

       

       因此咱們須要爲進入這個項目的後臺建立超級管理員:python manage.py createsuperuser設置好用戶名和密碼後即可登陸啦!

<6>清空數據庫:python manage.py  flush

<7>查詢某個命令的詳細信息: django-admin.py  help  startapp

       admin 是Django 自帶的一個後臺數據庫管理系統。

<8>啓動交互界面 :python manage.py  shell

     這個命令和直接運行 python 進入 shell 的區別是:你能夠在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操做數據,還有一些小測試很是方便。

<9> 終端上輸入python manage.py 能夠看到詳細的列表,在忘記子名稱的時候特別有用

 

二.Django的配置文件(settings)

一、概述:

     #靜態文件交由Web服務器處理,Django自己不處理靜態文件。簡單的處理邏輯以下(以nginx爲例):

     #          URI請求-----> 按照Web服務器裏面的配置規則先處理,以nginx爲例,主要求配置在nginx.
                             #conf裏的location

                         |---------->若是是靜態文件,則由nginx直接處理

                         |---------->若是不是則交由Django處理,Django根據urls.py裏面的規則進行匹配

    # 以上是部署到Web服務器後的處理方式,爲了便於開發,Django提供了在開發環境的對靜態文件的處理機制,方法是這樣:

    #一、在INSTALLED_APPS裏面加入'django.contrib.staticfiles',

    #二、在urls.py裏面加入
       if settings.DEBUG:  
           urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', 
           'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }),   
            url(r'^static/(?P<path>.*)$',
          'django.views.static.serve',{'document_root':settings.STATIC_ROOT}), )  

    # 三、這樣就能夠在開發階段直接使用靜態文件了。

二、MEDIA_ROOT和MEDIA_URL

        #而靜態文件的處理又包括STATIC和MEDIA兩類,這每每容易混淆,在Django裏面是這樣定義的:

        #MEDIA:指用戶上傳的文件,好比在Model裏面的FileFIeld,ImageField上傳的文件。若是你定義

        #MEDIA_ROOT=c:\temp\media,那麼File=models.FileField(upload_to="abc/")#,上傳的文件就會被保存到c:\temp\media\abc  
        #eg:
            class blog(models.Model):  
                   Title=models.charField(max_length=64)  
                   Photo=models.ImageField(upload_to="photo") 
        #     上傳的圖片就上傳到c:\temp\media\photo,而在模板中要顯示該文件,則在這樣寫
        #在settings裏面設置的MEDIA_ROOT必須是本地路徑的絕對路徑,通常是這樣寫:
                 BASE_DIR= os.path.abspath(os.path.dirname(__file__))  
                 MEDIA_ROOT=os.path.join(BASE_DIR,'media/').replace('\\','/') 

        #MEDIA_URL是指從瀏覽器訪問時的地址前綴,舉個例子:
            MEDIA_ROOT=c:\temp\media\photo  
            MEDIA_URL="/data/"
        #在開發階段,media的處理由django處理:

        #    訪問http://localhost/data/abc/a.png就是訪問c:\temp\media\photo\abc\a.png

        #    在模板裏面這樣寫<img src="{{MEDIA_URL}}abc/a.png">

        #    在部署階段最大的不一樣在於你必須讓web服務器來處理media文件,所以你必須在web服務器中配置,
        #  以便能讓web服務器能訪問media文件
        #    以nginx爲例,能夠在nginx.conf裏面這樣:

                 location ~/media/{
                       root/temp/
                       break;
                    }

        #    具體能夠參考如何在nginx部署django的資料。

三、STATIC_ROOT和STATIC_URL、
    STATIC主要指的是如css,js,images這樣文件,在settings裏面能夠配置STATIC_ROOT和STATIC_URL,
    配置方式與MEDIA_ROOT是同樣的,可是要注意

    #STATIC文件通常保存在如下位置:

    #一、STATIC_ROOT:在settings裏面設置,通常用來放一些公共的js,css,images等。

    #二、app的static文件夾,在每一個app所在文夾都可以創建一個static文件夾,而後當運行collectstatic時,
    #    Django會遍歷INSTALL_APPS裏面全部app的static文件夾,將裏面全部的文件複製到STATIC_ROOT。所以,
    #   若是你要創建可複用的app,那麼你要將該app所須要的靜態文件放在static文件夾中。

    # 也就是說一個項目引用了不少app,那麼這個項目所須要的css,images等靜態文件是分散在各個app的static文件的,比
    #  較典型的是admin應用。當你要發佈時,須要將這些分散的static文件收集到一個地方就是STATIC_ROOT。

    #三、STATIC文件還能夠配置STATICFILES_DIRS,指定額外的靜態文件存儲位置。
    #  STATIC_URL的含義與MEDIA_URL相似。

    # ----------------------------------------------------------------------------
    #注意1:
        #爲了後端的更改不會影響前端的引入,避免形成前端大量修改

        STATIC_URL = '/static/'               #引用名
        STATICFILES_DIRS = (
            os.path.join(BASE_DIR,"statics")  #實際名 ,即實際文件夾的名字
        )

        #django對引用名和實際名進行映射,引用時,只能按照引用名來,不能按實際名去找
        #<script src="/statics/jquery-3.1.1.js"></script>
        #------error-----不能直接用,必須用STATIC_URL = '/static/':
        #<script src="/static/jquery-3.1.1.js"></script>

    #注意2(statics文件夾寫在不一樣的app下,靜態文件的調用):

        STATIC_URL = '/static/'

        STATICFILES_DIRS=(
            ('hello',os.path.join(BASE_DIR,"app01","statics")) ,
        )

        #<script src="/static/hello/jquery-1.8.2.min.js"></script>

    #注意3:
        STATIC_URL = '/static/'
        {% load staticfiles %}
       # <script src={% static "jquery-1.8.2.min.js" %}></script>

 

 

 

 

CP:https://www.cnblogs.com/yuanchenqi/articles/6083427.html

https://www.cnblogs.com/chichung/p/9872766.html

相關文章
相關標籤/搜索