Django快速安裝以及建立個人第一個Django項目

特別說明:本文是針對Django 1.11和Python 3或更高版本編寫的。若是Django版本不匹配,可跳過該文章,或者將您的Django更新到最新版本。python

1、Django安裝步驟linux

一、安裝版本:正則表達式

    Django1.11.1django

    Django 下載地址:https://www.djangoproject.com/download/瀏覽器

二、支持的PYTHON版本服務器

    django1.11之後再也不支持python2.7 ,因此必須是python3版本上網絡

三、安裝python3+app

    Python 下載地址:https://www.python.org/downloads/ python2.7

四、安裝PYTHON3+ide

    安裝Python你只須要下載python-x.x.x.msi文件,而後一直點擊"Next"按鈕便可。

    安裝完成後你須要設置Python環境變量。 右擊計算機->屬性->高級->環境變量->修改系統變量path,添加Python安裝地址,本文實例使用的是C:\Python34,你須要根據你實際狀況來安裝。

若是是linux系統請下載Python-3.x.x.tgz安裝包自行安裝。


五、Django 安裝

 A、×××安裝

   將Django 壓縮包解壓並和Python安裝目錄放在同一個根目錄,進入 Django 目錄,執行python setup.py install,而後開始安裝,Django將要被安裝到Python的Lib下site-packages。

C:\Python34\Lib\site-packages

而後是配置環境變量,將這幾個目錄添加到系統環境變量中: C:\Python33\Lib\site-packages\django;C:\Python33\Scripts。 添加完成後就可使用Django的django-admin.py命令新建工程了

檢查是否安裝成功

python -m django --version 或者,

>>> import django

>>> print django.get_version()

若是Django已經安裝,你應該看到安裝的版本。 若是尚未安裝,你會看到一個「No module named django」的錯誤。

B、pip命令在線安裝

    第一步須要安裝pip命令

       下載pip命令,解壓切換到pip文件夾,python setup.py install安裝,而後就可使用pip命令了。

        pip install Django==1.11.1

六、關於如何刪除舊版本的Django並安裝一個新的

若是要從之前的版本升級Django的安裝,則須要在安裝新版本以前卸載舊的Django版本

若是之前使用pip或easy_install安裝了Django,則再次使用pip或easy_install安裝會自動處理舊版本,因此你不須要本身作。


若是您之前使用python setup.py 安裝安裝了Django,卸載操做就像刪除django目錄從您的Python site-packages。

查找

$ python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"

安裝就到此結束了。


2、建立一個project

一、Creating a project

django-admin startproject mysite

注意:您將須要避免在內置Python或Django組件後命名項目。特別是,這意味着你應該避免使用像djangoDjango自己這樣的名字 (或者test與內置的Python包衝突)


二、mysite項目中文件說明

mysite/

    manage.py

    mysite/

        __init__.py

        settings.py

        urls.py

        wsgi.py


  • 外部mysite/根目錄只是一個項目的容器。它的名字與Django無關; 您能夠將其重命名爲您喜歡的任何內容。

  • manage.py:一個命令行實用程序,可讓您以各類方式與此Django項目進行交互。您能夠閱讀django-admin和manage.pymanage.py中的全部詳細信息 。

  • 內部mysite/目錄是您的項目的實際Python包。它的名字是您須要用來導入其中的任何內容的Python包名稱(例如mysite.urls)。

  • mysite/__init__.py:一個空的文件,告訴Python這個目錄應該被認爲是一個Python包。若是您是Python初學者,請閱讀官方Python文檔中有關軟件包的更多信息。

  • mysite/settings.py:此Django項目的設置/配置。 Django設置會告訴你全部關於設置的工做原理。

  • mysite/urls.py:該Django項目的URL聲明; 您的Django動力網站的「目錄」。您能夠在URL調度程序中閱讀有關URL的更多信息。

  • mysite/wsgi.py:WSGI兼容的Web服務器爲您的項目提供服務的入口點。有關詳細信息,請參閱如何使用WSGI進行部署。

三、開發服務器

咱們來驗證您的Django項目的做品。更改成外部mysite目錄,若是您尚未,並運行如下命令:

$ python manage.py runserver

啓動信息

Performing system checks...


System check identified no issues (0 silenced).


You have unapplied migrations; your app may not work properly until they are applied.

Run 'python manage.py migrate' to apply them.


May 20, 2017 - 15:50:53

Django version 1.11, using settings 'mysite.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.


您已經開始使用Django開發服務器,這是一個純粹以Python編寫的輕量級Web服務器。咱們將其與Django結合在一塊兒,所以您能夠快速開發,而無需處理配置生產服務器(如Apache)。

如今服務器正在運行,請使用Web瀏覽器訪問http://127.0.0.1:8000/。您會看到一個「歡迎來到Django」頁面,在愉快的,淺藍色的粉彩中。有效!


改變端口


默認狀況下,該runserver命令在端口8000的內部IP上啓動開發服務器。

若是要更改服務器的端口,請將其做爲命令行參數傳遞。例如,此命令啓動端口8080上的服務器:

$ python manage.py runserver 8080

若是要更改服務器的IP,請將其與端口一塊兒傳遞。例如,要監聽全部可用的公共IP(若是您正在運行Vagrant或想要在網絡上的其餘計算機上炫耀您的工做),請使用:

$ python manage.py runserver 0:8000

0是0.0.0.0的快捷方式。開發服務器的完整文檔能夠在參考文獻中找到runserver。

自動重裝 runserver

開發服務器根據須要自動爲每一個請求從新加載Python代碼。您不須要從新啓動服務器以使代碼更改生效。可是,一些操做(如添加文件)不會觸發從新啓動,所以在這些狀況下您必須從新啓動服務器。


四、Creating the Polls app

如今,您的環境 - 一個「項目」 - 已經創建起來,您將開始作工做。


您在Django中編寫的每一個應用程序都包含遵循必定約定的Python包。Django自帶一個實用程序,能夠自動生成應用程序的基本目錄結構,所以您能夠專一於編寫代碼而不是建立目錄


您的應用程序能夠生活在Python路徑的任何位置。在本教程中,咱們將在您的manage.py 文件旁邊建立咱們的投票應用程序,以便它能夠做爲本身的頂級模塊導入,而不是子模塊mysite。


要建立您的應用程序,請確保您與目錄位於同一目錄,manage.py 並鍵入如下命令:

$ python manage.py startapp polls


polls/

    __init__.py

    admin.py

    apps.py

    migrations/

        __init__.py

    models.py

    tests.py

    views.py


五、Write your first view

咱們來寫第一個見解。打開文件polls/views.py 並放入如下Python代碼:

polls/views.py

from django.http import HttpResponse

def index(request):

    return HttpResponse("Hello, world. You're at the polls index.")

這是Django中最簡單的視圖。要調用視圖,咱們須要將其映射到一個URL , 爲此,咱們須要一個URLconf。

要在polls目錄中建立一個URLconf,建立一個名爲urls.py。您的應用目錄應該以下所示:

polls/

    __init__.py

    admin.py

    apps.py

    migrations/

        __init__.py

    models.py

    tests.py

    urls.py

    views.py


在polls/urls.py文件中包含如下代碼:

polls/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [

    url(r'^$', views.index, name='index'),

]


下一步是將根URLconf指向polls.urls模塊。在 mysite/urls.py添加一條import用於django.conf.urls.include和插入include()的urlpatterns列表:

mysite/urls.py

from django.conf.urls import include, url

from django.contrib import admin


urlpatterns = [

    url(r'^polls/', include('polls.urls')),

    url(r'^admin/', admin.site.urls),

]

該include()函數容許引用其餘URLconfs。請注意,該include()函數的正則表達式 沒有$(字符串匹配字符),而是尾部的斜槓。每當Django遇到 include()時,它會排除與該點匹配的任何部分,並將剩餘的字符串發送到隨附的URLconf進行進一步處理。


背後的想法include()是使即插即用的URL變得容易。因爲polls是在本身的URLconf(polls/urls.py)中,它們能夠被放置在「/ polls /」下面,或者在「/ fun_polls /」下面,或者在「/ content / polls /」或其餘路徑根目錄下,工做。



六、什麼時候使用 include()


include()當您包含其餘網址格式時,您應始終使用。 admin.site.urls是惟一的例外。

不符合你的見解?


若是您只是看到,include(admin.site.urls)而 admin.site.urls您可能正在使用與本教程版本不符的Django版本。您將須要切換到較舊的教程或較新的Django版本。


您如今已將index視圖鏈接到URLconf中。讓它驗證它的工做,運行如下命令:

$ python manage.py runserver


在瀏覽器中轉到http:// localhost:8000 / polls /,您應該看到文本「 Hello,world ***」。


七、url()函數傳遞四個參數,兩個必需:regex和view,和兩個可選:kwargs,和name。在這一點上,值得審查這些論據。

  • url()參數:正則表達式

    術語「正則表達式」是一種經常使用的短格式,意思是「正則表達式」,它是用於匹配字符串中的模式的語法,或者在這種狀況下是URL格式。Django從第一個正則表達式開始,並將其放在列表中,將請求的URL與每一個正則表達式進行比較,直到找到匹配的一個。

請注意,這些正則表達式不搜索GET和POST參數或域名。例如,在請求中 https://www.example.com/myapp/,URLconf將尋找myapp/。在請求中https://www.example.com/myapp/?page=3,URLconf也會查找myapp/。

若是您須要正則表達式的幫助,請參閱re模塊文檔。實際上,您不須要是正則表達式的專家,由於您只須要知道如何捕獲簡單的模式。實際上,複雜的正則表達式的查找性能會不好,因此你可能不該該依靠正則表達式的所有功能。

最後,一個性能說明:這些正則表達式是第一次加載URLconf模塊時被編譯。它們超級快


  • url()參數:視圖

當Django找到一個正則表達式匹配時,Django會調用指定的視圖函數,其中一個HttpRequest對象做爲第一個參數,任何來自正則表達式的「捕獲」值做爲其餘參數。若是正則表達式使用簡單的捕獲,則值做爲位置參數傳遞; 若是它使用命名捕獲,則值做爲關鍵字參數傳遞。咱們稍後會給出一個例子。


  • url()參數:kwargs 

任意關鍵詞參數能夠在字典中傳遞到目標視圖。咱們不會在教程中使用Django的這個功能。


  • url()參數:名稱

命名您的URL可以讓您從Django其餘地方明確地引用它,特別是在模板中。這個強大的功能可以讓您全面更改項目的URL模式,同時只觸摸單個文件。


八、Django 官方文檔:

https://docs.djangoproject.com/en/1.11/

相關文章
相關標籤/搜索