1.django 開發環境搭建

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

本教程使用的開發環境

本教程寫作時開發環境的系統平臺為 Windows 10 (64 位),Python 版本為 3.5.2 (64 位),Django 版本為 1.10.6。

建議盡可能地與教程的開發環境保持一致(尤其是 Python 與 Django 版本),避免不必要的麻煩。推薦的 Python 版本為 Python 3.4 或以上,Django 版本號必須為 Django 1.10.x。

注意:本教程將盡量保證兼容 Python 2,但不會在 Python 2 環境下做測試。如果你因為某種原因必須使用 Python 2,你可以在 Python 2 環境下嘗試運行教程里的代碼,應該能夠順利運行。

安裝 Python

Windows 下安裝 Python 非常簡單,去 Python 官方網站找到 Python 3 的下載地址,根據你的系統選擇 32 位或者 64 位的安裝包,下載好后雙擊安裝即可。

安裝完后檢測 Python 是否可以正常運行。在命令行輸入 python -v ,如果輸出了 Python 的版本號,說明 Python 已安裝成功。

C:\WINDOWS\system32>python -V
Python 3.5.2

如果提示命令未找到,而你又確定已經安裝了 Python,多半是因為沒有把 Python 添加到環境變量。可搜索如何把 Python 添加到環境變量的相關教程,將安裝的Python 添加到環境變量即可。

使用虛擬環境 Virtualenv

強烈推薦在 Virtualenv 下進行 Django 的開發。Virtualenv 是一個 Python 工具,使用它可以創建一個獨立的 Python 環境。

為什么要使用 Virtualenv 呢?舉個例子,假設你已經在系統中安裝了 Python,并且在閱讀此教程前你已經進行過一些 Django 的學習,但那時候安裝的 Django 還是 1.8 版本。我們教程使用的是最新版的 Django 1.10.6 版本,你可能不愿意刪除掉舊版的 Django 1.8,因為那可能導致你以前的項目無法運行。既想讓原本項目在 Django 1.8 環境下運行,又想再安裝 Django 1.10.6 來開啟本教程的項目,怎么辦呢?使用 Virtualenv 就能夠完美解決這個問題。

Virtualenv 幫我們從系統的 Python 環境中克隆一個全新的 Python 環境出來,這個環境獨立于原來的 Python 環境。我們可以在這個新克隆的環境下安裝 Django 1.10.6,并且在這個新環境下運行我們的新項目。

Virtualenv 的使用非常簡單,首先安裝 Virtualenv,打開命令行工具,輸入 pip install virtualenv 命令即可安裝 Virtualenv。

C:\WINDOWS\system32>pip install virtualenv

安裝成功后就可以開始創建虛擬環境,指定一個你喜歡的目錄,Virtualenv 會把這個新的虛擬環境裝到你指定目錄下。例如我把它裝到 C:\Users\yangxg\Envs 目錄下,并將虛擬環境命名為 blogproject_env(也可以取任何你喜歡的名字)。在命令欄運行如下命令:

C:\WINDOWS\system32>virtualenv C:\Users\yangxg\Envs\blogproject_env

虛擬環境已經創建好了,我們需要激活這個環境,運行 blogproject_env\Scripts\ 目錄下的 activate 程序激活它:

C:\WINDOWS\system32>C:\Users\yangxg\Envs\blogproject_env\Scripts\activate
(blogproject_env) C:\WINDOWS\system32>

注意 Linux 下沒有 Scripts\ 這個目錄,取而代之的是 bin/ 目錄。且激活命令為:

$ source blogproject_env/bin/activate

可以看到命令提示符前面多了 (blogproject_env),說明我們已經成功激活了虛擬環境,接下來就可以開始安裝 Django 了。

安裝 Django

Django 的官方文檔對 如何安裝 Django 給出了詳細且明確的指導,不過我們目前用不上這些,只需使用 pip 命令就可以解決問題。

(blogproject_env) C:\WINDOWS\system32>pip install django==1.10.6

我們用 django==1.10.6 來安裝指定的 Django 版本以保證和教程中的一致。如果直接 pip install django 的話有可能安裝最新的 Django 發行版本,而不是 Django 1.10.6。

注意命名提示符前的 (blogproject_env) 以確保你始終處在虛擬環境中,如果不小心退出了虛擬環境,先按上面的步驟重新進入再安裝 Django。

測試一下安裝是否成功,先在命令行輸入 python 以打開 Python 自帶的命令欄,然后輸入 import django,如果沒有報錯就說明 Django 安裝成功。通過運行 print(django.get_version()) 打印出 Django 的版本號,確保安裝了正確版本的 Django。

(blogproject_env) C:\WINDOWS\system32>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.get_version())
1.10.6
>>>

建立 Django 工程

萬事已經具備了,讓我們來建立 Django 項目工程。

Django 工程(Project)是我們項目代碼的容器,例如我們博客項目中所有的代碼(包括 Django 為我們自動生成的以及我們自己寫的)都包含在這個工程里。其實說通俗一點就是用一個文件夾把一系列 Python 代碼文件和 Django 配置文件包裹起來,這個文件夾就可以看做一個 Django 工程。我們不必親自動手新建這個文件夾和代碼文件,Django 的內置命令已經幫我們做了這些事情。例如我把博客工程的代碼放在 C:\Users\yangxg\Workspace\ ,工程名我把它叫做 blogproject 。

首先在命令行進入到 C:\Users\yangxg\Workspace 這個目錄(如果你還停留在 Python 的命令欄里,先多按幾次 Ctrl + c 鍵跳出來):

(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace

然后運行如下命令創建工程:

(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject

再次申明一定要在虛擬環境下運行這些命令,虛擬環境的標志就是命令提示符前有 (blogproject_env) 這樣的標記。以后幾乎所有和 Django 有關的命令都是在虛擬環境下運行,因此在運行前一定確保先開啟了虛擬環境。

進入工程所在目錄 C:\Users\yangxg\Workspace\(你可能設置在其它路徑),會發現多了一個 blogproject\ 的目錄,其內部的文件結構如下:

blogproject\manage.pyblogproject\__init__.pysettings.pyurls.pywsgi.py

最頂層的 blogproject\ 目錄是我們剛剛指定的工程目錄。blogproject\ 目錄下面有一個 manage.py 文件,manage 是管理的意思,顧名思義 manage.py 就是 Django 為我們生成的管理這個項目的 Python 腳本文件,以后用到時會再次介紹。與 manage.py 同級的還有一個 blogproject\ 的目錄,這里面存放了一些 Django 的配置文件,例如 settings.py、urls.py 等等,以后用到時會詳細介紹。

Hello Django

網站需要運行在一個 Web 服務器上,Django 已經為我們提供了一個用于本地開發的 Web 服務器。在命令行工具里進入到 manage.py 所在目錄,即最外層的 blogproject\ 目錄下。運行 python manage.py runserver 命令就可以在本機上開啟一個 Web 服務器:

(blogproject_env) C:\Users\yangxg\Workspace>cd C:\Users\yangxg\Workspace\blogproject(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver
Performing system checks...System check identified no issues (0 silenced).You have 13 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.
December 21, 2016 - 20:23:07
Django version 1.10.4, using settings 'blogproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

看到這樣的信息表明我們的服務器開啟成功。

在瀏覽器輸入 http://127.0.0.1:8000/ ,看到如下的頁面提示信息:

Welcome to Django

It worked! Django 工作了!

注意:如果在瀏覽器輸入 http://127.0.0.1:8000/ 后顯示無法訪問該網站,請檢查是不是瀏覽器代理的問題。比如開啟了某些 VPN 代理服務等,將它們全部關閉即可。

這是 manage.py 的第一個用法,運行它的 runserver 命令開啟本地開發服務器,以后我們還會遇到更多的命令。

命令欄工具下按 Ctrl + c 可以退出開發服務器(按一次沒用的話連續多按幾次)。重新開啟則再次運行 python manage.py runserver

Django 默認的語言是英語,所以顯示給我們的歡迎頁面是英文的。我們在 Django 的配置文件里稍作修改,讓它支持中文。用任何一個文本編輯器打開 settings.py 文件,找到如下的兩行代碼:

blogproject/blogproject/settings.py## 其它配置代碼...LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'## 其它配置代碼...

LANGUAGE_CODE 的值改為 zh-hansTIME_ZONE 的值改為 Asia/Shanghai

blogproject/blogproject/settings.py## 其它配置代碼...# 把英文改為中文
LANGUAGE_CODE = 'zh-hans'# 把國際時區改為中國時區
TIME_ZONE = 'Asia/Shanghai'## 其它配置代碼...

保存更改后關閉 settings.py 文件。

再次運行開發服務器,并在瀏覽器打開 http://127.0.0.1:8000/,可以看到 Django 已經支持中文了。

歡迎認識 Django

一切準備就緒,開始進入我們的 Django 博客開發之旅吧!

總結

本章節的代碼位于:Step1: build development environment。

如果遇到問題,請通過下面的方式尋求幫助。

  • 在下方評論區留言。
  • 將問題的詳細描述通過郵件發送到 djangostudyteam@163.com,一般會在 24 小時內回復。
  • 加入 Django 學習小組 QQ 群,掃描下方二維碼加入。

轉載于:https://my.oschina.net/zhiyonghe/blog/918620

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541225.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541225.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541225.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

改jpg_|我來改第04期|—人物海報設計

【我來改第04期】人物海報文案內容-Ad copyhttps://pan.baidu.com/s/16pz9_rcLXTGZ3xzKFjKN9g 密碼: r57t設計要求-Requirement尺寸:1080(高)*650(寬)像素,大小不大于5m設計要求:以目前的藍色為主要顏色(R:47,G:87,B:130),畫面體…

Java即時類| plus()方法與示例

即時類plus()方法 (Instant Class plus() method) Syntax: 句法: public Instant plus(TemporalAmount t_amt);public Instant plus(long amt, TemporalUnit t_unit);plus() method is available in java.time package. plus()方法在java.time包中可用。 plus(Temp…

計算機領域中dns是什么意思,dns錯誤是什么意思?dns錯誤要如何解決?

隨著網絡的普及,電腦已經成為我們生活中必不可少的物品,它可以幫助我們工作和學習以及娛樂。不過電腦在使用的過程中,常常會出現一些問題,小編覺得最常見也最讓人心生煩躁的就是輸入網址打開之后出現網頁打不開,提示dn…

Launch Instruments

Launch Instruments 該儀器應用在Xcode應用程序,所以推出是在Xcode的最直接的方式。你也可以啟動它間接地通過碼頭,啟動,或命令行。The Instruments app lives inside the Xcode app, so the most direct way to launch it is from within Xc…

java clock計時_Java Clock類| offset()方法與示例

java clock計時Clock Class offset()方法 (Clock Class offset() method) offset() method is available in java.time package. offset()方法在java.time包中可用。 offset() method is used to generate a new Clock from the given base clock with added the given Duratio…

dataframe數據標準化處理_數據處理中的標準化、歸一化究竟是什么?

關注上方“Python數據科學”,選擇星標,精彩文章不會錯過!今天說一個比較重要的內容,無論是在算法建模還是在數據分析都比較常見:數據歸一化和標準化。開始之前,請你先把網上看到的所有相關的博客、帖子都忘…

北航計算機學院博士機試考試題,北航2015考博真題回憶及全套資料 - 考博 - 小木蟲 - 學術 科研 互動社區...

我是2015年畢業的應屆碩士,報考了北航經管院的博士。想寫這篇文很久了,現在復試完等最后結果中,把自己一路走來的經驗分享給大家。1.報名報名之前很重要的一點就是聯系導師。我是研二下,快放暑假了才開始聯系導師。北航一般是11月…

用了Redis里面的map和set

map的操作用 hset,hget等 set的操作有 sadd sismember等 參考下面: http://blog.csdn.net/kwsy2008/article/details/48467441

java輸出不同顏色_Java設計模式-策略模式、狀態模式

推薦閱讀:一只Tom貓:都是“Redis惹的禍”,害我差點掛在美團三面,真是“虛驚一場”!java喵:6大面試技能樹:JAVA基礎JVM算法數據庫計算機網絡操作系統前言當代碼中出現多重if-else語句或者switch語…

c++stl和std_std :: rotate()函數以及C ++ STL中的示例

cstl和stdC STL std :: rotate()函數 (C STL std::rotate() function) rotate() function is a library function of algorithm header, it is used to rotate left the elements of a sequence within a given range, it accepts the range (start, end) and a middle point,…

計算機硬盤正在工作應特別注意避免,初級計算機考試題庫

計算機的初級基本*作包括基本信息欄、計算機的基礎知識、五筆字型基礎、*互聯網的*作、常用辦公外設的使用、計算機硬件的日常維護與保養和office辦公工具的應用。下面是初級計算機考試題庫,請參考!1.以下與信息有關的設備計算中,用于存儲信息…

abap 添加alv上的工具欄的按鈕_神器必會!“世界上最好的編輯器Source Insight”...

前言“Source Insight(以下簡稱SI)是世界上最好的編輯器”,說這句話不知道會不會出門被打呢?-_- 中國古話說得好,“文無第一,武無第二”,所以不敢說SI是最好的,但是說是“最好的之一”絕對是妥妥的。它以豐…

SLF4J with Logback in a Maven Project | Mograblog

SLF4J with Logback in a Maven Project | Mograblog

Ruby中帶有示例的Hash.key?(value)方法

Hash.key?(value)方法 (Hash.key?(value) Method) In this article, we will study about Hash.key?(value) Method. The working of the method cant be assumed because its quite a different name. Let us read its definition and understand its implementa…

計算機課傷害事故的防范,體育課安全傷害事故的防范與處理

摘 要:近年來,在教育改革的背景下,學校方面特別重視體育教學這一環節。做好體育教學工作,一方面能夠使學生達到強身健體的目的,另一方面能夠使學生的綜合素質水平得到有效提升。然而,在體育課中還會發生一些…

同一個容器實例可以同時運行在多個宿主機_從零開始學K8s: 3.什么是容器

Kubernetes使用Linux容器技術來實現應用的隔離。因此在深入學習k8s之前,我們需要先學習容器的基礎知識以便更好地去理解k8s的原理機制。揭開容器的神秘面紗當一個應用只由較少數量的大組件構成時,完全可以給每個組件分配一個專用的虛擬機,以及…

__str__是什么函數_PHP str_shuffle()函數與示例

__str__是什么函數PHP str_shuffle()函數 (PHP str_shuffle() Function) str_shuffle() function is a string function and it is used to shuffle all characters randomly in the string. str_shuffle()函數是一個字符串函數,用于隨機地隨機排列字符串中的所有字…

SpringBoot集成RabbitMq消息隊列【附源碼】

1. 項目背景 要啥項目背景,就是干!!! SpringBoot版本:2.7.12 2. Rabbit MQ安裝 這里講解使用docker安裝RabbitMQ,如果在windows下面安裝RabbitMQ,參考下文 【笑小楓的按步照搬系列】Window…

【云棲直播】精彩推薦第3期:個性化推薦系統搭建實踐

熱門推薦 (1)即將直播持續集成與交付:分層自動化之UI自動化體系建設直播簡介:本系列直播由阿里旗下一站式研發提效平臺云效策劃推出,主要為大家詳細介紹阿里巴巴在持續集成和持續交付的最佳實踐。 直播講師&#xff1a…

全國計算機等級考試和cct區別,全國計算機等級考試(NCRE)和CCT的區別你了解多少?...

在大學,很多學生都在糾結,到底學什么技能在以后的就業中能夠提升自己的核心競爭力。在眾多等級考試中,全國計算機等級考試可以說是相對熱門的考試。關于計算機等級考試,一共有兩種,一類是全國高等學校計算機水平考試(C…