1. 程式人生 > >使用Visual Studio 2015開發Python Django

使用Visual Studio 2015開發Python Django

孫廣東   2016.6.24

http://blog.csdn.net/u010019717

VS 本身就是全宇宙最強的開發工具,  微軟官方開發和維護者.Net版的 python .  IronPython  。 開發python強大到折服!

     安裝vs2015時要選擇 python的擴充套件外掛, 如果沒有就更新安裝。

         面向Python 的最流行(且功能最強大)的開源 Web 開發平臺 - Django。建立資料驅動的動態應用程式。探討 Django 中提供的物件關係對映 (ORM)系統,並瞭解如何確保您的頁面可被搜尋引擎發現。

Django 的特性:

有模板和 眾多佈局方式

自帶物件關係對映(ORM

網站管理

安全

容易理解

非常強大

http://blog.csdn.net/u010019717

建專案:

1、visualStudio2015 新建專案  選擇   (如果Djongo 版本超過1.7 ,那麼PTVS外掛要不低於2.2.3

2、然後選擇  Install into a visual environment….

3、然後使用預設的點選 建立就行了!

建立完之後, 第一個提示頁面是:

E:\ku\Documents\Visual Studio2015\Projects\DjangoWebProject1\DjangoWebProject1\readme.mht  一些提示說明

看一下 專案相關的 管理 (突然覺得使用 vs 開發簡直是碉堡了!!!)

 

         其中框住的虛擬環境,是我們 建立專案的時候第3步的結果, 可以刪除然後再點選下面的按鈕  重新新增!

 

 

執行程式,  會開啟瀏覽器  然後看到這個專案的頁面等等,  但是並沒有 管理員啊 什麼的?  那時因為我們沒有  Django Sync DB  

  1. 設定管理員使用者名稱  然後 yes
  2. 輸入 user name, email and password

再次執行 程式 就會看到 管理員的選擇, 然後 登陸這個賬號看看!

注意  :但是會遇到這個問題。  解決方式:  升級這個VS外掛  , 微軟的更新是很及時的!(專案也要重新建立 )

那麼建立超級賬戶的過程:

 

執行程式、  登陸剛剛的 管理員賬號!

http://blog.csdn.net/u010019717

關於ORM的百科:

提供的資料庫欄位還是很多的

這裡只說最常見的兩種:

有了基礎概念,  就開始一個Demo吧!    開啟檔案  。

輸入程式碼:

from django.db import models

# Create your models here.

class Artist(models.Model):

name = models.CharField(max_length = 50)

year_formed =models.PositiveIntegerField();

class Album(models.Model):

name = models.CharField(max_length = 50)

     關於資料表的介紹:

每個資料表都應該有一個key

這個key通常是id, 自動生成的數字

Django自動處理這些

建立表之間的關係。

         如果 Artist 是 有 Album的(藝術相簿/專輯),  Django 使用 models.ForeignKey 建立關係!

class Album(models.Model):

name = models.CharField(max_length = 50)

artist = models.ForeignKey(Artist)

關於 檢視上名字的顯示問題:

 Django自動顯示label屬性到檢視上,  "_"符號被換成了“ ”空格。

 預設情況下顯示的欄位名稱是依據 models.py 中的欄位名來顯示的。

如果想要定製 label:

verbose_name 可以讓你定製名字;

必須以小寫字母開始

下面要做的就是自定義欄位在後臺的顯示名稱(比如顯示為中文)。

        對於普通欄位:

name = models.CharField(u'軟體名稱',max_length=200)

       對於 OneToOneField, ForeignKey 及 ManyToManyField :

foo= models.OneToOneField(Foo, verbose_name=u'foobar')

software = models.ForeignKey(SoftWare,verbose_name=u'軟體名稱')

author = models.ManyToManyField(Author,verbose_name=u'作者')

Django的資料庫 支援  SQLite \ MySQL \ SQL .    預設為開發者提供的是SQLite

可以在  setting.py  中指定並設定  。

那麼如何建立 database   三種命令方式:

  • makemigrations            建立一個新的 migrate

pythonmanage.py makemigrations --name initial app

  • sqlmigrate           顯示 SQL狀態
  • migrate             更新資料庫到一個指定的 migrate包中

那麼怎麼啟動命令列呢?

專案上  右鍵 選擇 - 》  Open Command Prompt Here…    然後 出入命令:

再執行命令  :  pythonmanage.py showmigrations app

app

 [ ] 0001_initial

再執行命令  :  pythonmanage.py sqlmigrate  app0001_initial

再執行命令  :  pythonmanage.py migrate  

http://blog.csdn.net/u010019717

1、】建立和更新資料

建立並儲存物件到資料庫的方式“

newArtist = Artist(name ='Artist Name', year_formed = 2015);

newArtist.save();

只要繼承自Model類  就有 save() 方法;

更新物件的資料, 也很簡單 PythonOEM會自動弄, 只需要使用save() 方法即可!

newArtist.name = 'Updated Name';

newArtist.save();

可以才命令列中執行測試:

通過 DjangoORM 獲取資料!

 objects 集合, 每個類會從Model類繼承 objects 

# 使用 all() 檢索所有物件

allArtists =Artist.objects.all();

for artist in allArtists:

print(artist.name);

# 使用Get(ID)檢索特定ID的物件

allArtists =Artist.objects.all();

for artist in allArtists:

print(artist.name);

Django 提供了 兩個主要的方法:

  • get       只返回一個物件,    如果你返回0個或者超過1個,會報錯
  • filter      返回多個物件,     允許更多複雜的查詢

例如, 你想通過名字查詢:

artist = Artist.objects.get(name= 'Artist Name');

例如, 你只知道名字的一部分(模糊查詢?)

artist =Artist.objects.filter(name__startswith = 'Great');

get 總是期待精確匹配

artist = Artist.objects.get(name= 'Artist Name');

上面的查詢是與以下相同

artist =Artist.objects.get(name__exact = 'Artist Name');

從 artist 中載入所有的 albums 怎麼辦???

Django 允許使用物件鏈(使用ForeignKey定義的關係)的方式 查詢

建立要給篩選,  使用 object_property 

albums = Album.objects.filter(artist__name= 'Artist Name');

這裡推薦一個工具  :  瀏覽 SQLite中的資料:

http://blog.csdn.net/u010019717

路由的概念:

        正如我們看到的,現在產生的 URL地址都很醜陋,既不便於記憶,也不便於被搜尋引擎收錄。所以我們需要對 URL 進行美化。

  革命性的 URL 路由

  正向解析

  通過瀏覽器訪問諸如 http://qeephp.com/projects/qeephp 這樣的 URL 時,實際訪問的是 projects 控制器的 show 動作,並且附帶了引數 name=qeephp。

  將這樣一個 URL 解析為 MVC 模式需要的控制器名和動作名引數的過程稱為正向解析。這個功能在大多數框架中都具備,只是強弱問題。

  反向解析

  在前面章節中反覆出現的一個函式 url() 是專門用來自動建立 URL地址的函式。這個函式接受兩個引數:UDI 和可選引數。UDI 用一種規範的形式指定了這個 URL 將要呼叫的控制器、動作,而可選引數則會附加在 URL中進行傳遞。

  在應用程式的 URL 路由沒有啟動時,url() 的效果如下:

  url('tasks/create')

  // 結果為index.php?controller=tasks&action=create

  url('tasks/edit', array('task_id' =>2))

  // 結果為index.php?controller=tasks&action=edit&task_id=2

  而啟用 URL 路由後,url()的效果如下:

  url('tasks/create')

  // 結果為 /tasks/create

  url('tasks/edit', array('task_id' =>2))

  // 結果為 /tasks/edit/2

  如果我們修改了路由規則,則效果可能是:

  url('tasks/create')

  // 結果為 /create-new-tasks

  url('tasks/edit', array('task_id' =>2))

  // 結果為 /edit-my-task/2

  也就是說 url() 函式的結果取決於應用程式的配置和路由規則。

  這帶來的好處包括:

  在不同環境下,只需要啟用或關閉 URL 路由,就能保證應用程式正常工作

  修改路由規則表就可以獲得不同的 URL 地址,完全不需要修改程式碼和檢視

  從 url() 指定引數獲得 URL 的過程就是“反向解析”。

            簡而言之,django的路由系統作用就是使views裡面處理資料的函式與請求的url建立對映關係。使請求到來之後,根據urls.py裡的關係條目,去查詢到與請求對應的處理方法,從而返回給客戶端http頁面資料。

一、最基礎的url對映(使用了Python的正則表示式)

urls.py

from django.conf.urls importinclude, url

from django.contrib import admin

from app01 import views

urlpatterns = [

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

url(r'^index/$', views.index),

]

1、先從建立的app下的views.py面定義處理資料的函式

2、在urls.py裡匯入views

3、在urlpatterns裡寫入一條url與處理函式的l對映關係

4、url對映一般是一條正則表示式,“^” 字串的開始,“$“ 字串的結束

5、當寫成”^$“時,不輸入任何url時不會在返回黃頁,而是返回後面函式裡對應的頁面。一般這一條會寫在url的最後。如:

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

二、按照順序放置的動態路由

urlpatterns = [

url(r'^user/(\d+)$', views.user),

url(r'^user_list/(\d+)/(\d+)$',views.user_list),

]^user/(\d+)$

           相對應的url是: ”http://127.0.0.1/uer/8“ (\d+)是匹配任意的數字,在分頁時靈活運用。

^user_list/(\d+)/(\d+)$

def user_list(request,nid,nid2):

return HttpResponse(nid+nid2)

三、傳參形式的動態路由

利用正則表示式的分組方法,將url以引數的形式傳遞到函式,可以不按順序排列。

urlpatterns = [

url(r'^user_list/(?P<v1>\d+)/(?P<v2>\d+)$',views.user_list),

](?P<v1>\d+)

正則表示式的分組,相當於一個字典, key=v1, value=\d+。{"v1":"\d+"}

然後將此引數傳遞到views裡對應的函式,可以不按照順序

def user_list(request,v2,v1):

return HttpResponse(v1+v2)引數v1 =(?P<v1>\d+)

引數v2 =(?P<v2>\d+)

四、根據不同的app來分發不同的url

如果一個專案下有很多的app,那麼在urls.py裡面就要寫巨多的urls對映關係。這樣看起來很不靈活,而且雜亂無章。

我們可以根據不同的app來分類不同的url請求。

首先,在urls.py裡寫入urls對映條目。注意要匯入include方法

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

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

]

這條關係的意思是將url為”app01/“的請求都交給app01下的urls去處理。

其次,在app01下建立一個urls.py檔案,用來處理請求的url,使之與views建立對映

from django.conf.urls import include, url

from app01 import views

urlpatterns = [

url(r'index/$', views.index),

]

佈局和表單

使用模板:

       Django模板即使 HTML, 他們的存放路徑是:templates資料夾下  ?????????

如何指定一個模板: 

http://blog.csdn.net/u010019717

最後轉載一篇   極客頭條的 文章:

         又一個Python開發利器!http://ms.csdn.net/geek/80930

以下將說明六項 Visual Studio 整合開發 Python 程式之優勢功能。

  • 整合 Python 直譯器 (Interpreter) & 互動視窗 (Interactive)
  • 整合 Python 虛擬開發環境 (Virtual Environment)
  • 整合 Python 套件管理員 (Package Manager)
  • IntelliSense 對 Python 完整的支援
  • 對 Python 使用偵錯模式 (Debugging)
  • 跨平臺遠端偵錯 (Remote Debugging)

整合 Python 直譯器 (Interpreter) & 互動視窗 (Interactive)

Visual Studio 高度整合 Python 直譯器,讓您能夠在開發過程中切換不同版本的 Python 直譯器。此項功能除了能夠切換至您所熟悉的 Python 版本進行開發外,更可確保您的程式在不同 Python 版本下執行的函式相容性是合法的,如下圖程式碼當中的 print 函式,在 Python 2.7 環境下為合法的 (紅色箭頭指向目前為使用 Python 2.7 全域環境直譯器)。

Python

若您的系統有安裝不同版本的直譯器,將會替您整合至 Visual Studio 當中供您選擇。如您安裝直譯器的路徑非預設路徑或欲自訂直譯器函示庫、直譯器位元時,您亦可自行於 Visual Studio 新增自訂直譯器。

接著我們示範切換至不同版本的 Python 環境,這裡以切換至 Python 3.5 為例。

Python 3.5

此時會發現 Visual Studio 自動偵測到非該環境版本所支援的函式,透過下引號提示使用者錯誤的程式碼片段,提供使用者快速尋找出不同版本間不相容之處,以便快速進行修正工作。

Python

並提供於 Visual Studio 內啟動不同版本的互動 (Interactive) 視窗,就像以往在 Python 命令列下做的事情一樣,此互動視窗提供您進行初步撰寫、測試,以及驗證您設計想法的一個簡易執行環境。

Python 命令

整合 Python 虛擬開發環境 (Virtual Environment)

Visual Studio 提供完整的 Python 虛擬環境來為不同專案提供獨立的 Python 執行環境,如此一來可避免多個專案間彼此共用一個全域環境使得有太多與該專案不相關的套件在環境中,增加開發環境的複雜度。或者您能夠在不同環境中安裝不同版本的套件,以便測試在不同的版本中所使用到套件的函式是否有不一樣之處。

如下圖,我們建立多個虛擬環境,用此來安裝不同版本的套件以進行相容性測試,而創建出來的虛擬環境能於稍後提供給其他專案使用,減少安裝及建立環境所花費冗餘的設定時間。

虛擬環境

在建立虛擬環境時能夠透過其他虛擬環境或者全域環境內已安裝的套件產生 requirements 檔,此檔桉將可在稍後建立新的虛擬環境時作為參考,提供快速設定新的虛擬環境所需的套件清單。

虛擬環境

整合 Python 套件管理員 (Package Manager)

在 Python 中有許多有用的第三方套件能夠透過 pip 或者 easy_install 套件管理員安裝,讓您能在程式碼中呼叫這些套件中的函式,協助您更快的達成開發目標。而在 Visual Studio 中高度整合這些套件管理員,讓您不需要輸入繁瑣的指令即可簡單的安裝套件。

如下圖,可於方案總管內在欲安裝套件的 Python 環境下點選滑鼠右鍵,即可看到安裝 Python 套件的選項。

Python 套件

接著如下圖輸入您要安裝的套件名稱,在這裡您也可以指定版本安裝,或者不指定則安裝最新版本的套件。另外需要注意的是若您使用 easy_install 選項,將不會替您即將安裝的套件整合至方案總管當中,如此一來將無法使用 Visual Studio 完整管理這些透過 easy_install 安裝的套件。

Python

IntelliSense 對 Python 完整的支援

Visual Studio 針對 Python 亦提供以往在 C#、VB、VC++ 等語言上 IntelliSense 的支援,例如:列出物件成員、函式呼叫引數與返回值資訊、快速諮詢和自動完成文字等輔助功能,讓您在撰寫物件或者呼叫函式時能夠更有信心,提高撰寫效率。

下圖展示 IntelliSense 功能協助列出物件中所公開的成員內容。

IntelliSense

下圖展示 IntelliSense 功能提供函式呼叫引數資訊。

IntelliSense

另外 IntelliSense 提供快速動作,例如鍵入 main 後按下「T,即可幫您自動補完合適的程式碼區段與相關參考。

IntelliSense

Python 使用偵錯模式 (Debugging)

Visual Studio 針對 Python 支援完整偵錯功能,例如在程式執行時能夠暫止於中斷點處,此時能檢視或修改當下執行情況的區域變數以及呼叫堆疊,並能於偵錯模式下使用您熟悉的重要功能讓您能更簡易快速的掌握程式執行的情況。

Debugging

另外,Visual Studio 對 Python 支援了溷合偵錯模式 (Mixed-Mode debugging),若您的 Python 程式碼中有使用到外部如 C/C++ 等 Native Code 並擁有該 Native Code 的原始碼專案時便能進行溷合偵錯模式。而與一般偵錯模式一樣,在 Python 外的語言仍可進入中斷點改變其變數值。

相同的,您也能夠於混合偵錯模式下自由的跳躍至不同程式碼的呼叫堆疊當中進行程式碼及變數的巡覽。

Debugging

本控制

Visual Studio 整合版本控制,其支援 Git 與 Visual Studio Team Services 版本控制,透過 Visual Studio 您現在不需要額外工具就能夠直接於 Visual Studio 內對您的 Python 專案直接進行版本提交、復原、比較、檢視程式碼歷史紀錄等版本控制所用到的常用功能。

本控制

本控制

跨平臺遠端偵錯 (Remote Debugging)

Visual Studio 替 Python 程式加入了遠端除錯的能力,透過這個 Python 套件讓您能夠使用 Visual Studio 連線在不同的作業系統上 (如 Linux) 執行的 Python 程式。此項功能使得您在跨平臺開發時更能夠獲得一致的開發體驗與提升整體開發效率!

如下圖展示 Python 程式運作在一塊 Linux 嵌入式開發板上,同時在個人電腦內的 Windows 10 執行著 Visual Studio 2015,其透過 ptvsd 套件能讓您遠端附加至序,直接對 Linux 嵌入式開發板上執行的 Python 程式進行如您所熟悉的偵錯模式。並保有完整的偵錯模式功能像是區域變數檢視、呼叫堆疊分析等完整偵錯功能來進行程式的分析與追蹤。

跨平臺遠端偵錯

相關推薦

使用Visual Studio 2015開發Python Django

孫廣東   2016.6.24http://blog.csdn.net/u010019717VS 本身就是全宇宙最強的開發工具,  微軟官方開發和維護者.Net版的 python .  IronPython  。 開發python強大到折服!     安裝vs2015時要選擇

Visual Studio開發Python六大功能

以及 images 工作 目標 tel 增加 工具 studio -1 Visual Studio上開發Python六大功能 一、整合 Python 直譯器 (Interpreter) & 互動視窗 (Interactive) Visual Studio 高度

使用Visual Studio 2017開發Python程式(2)

建立第一個Hello Word程式 (1)開啟Microsoft Visual Studio 2017,依次單擊頂部工具欄中的“檔案”>“新建” >“專案”命令,彈出“新建專案”對話方塊。在左側模板列表中選擇“Python”選項,在右側選擇“Python應用程式”選項。在下方文字

Windows下OpenCV 3.4.0 + Visual Studio 2015開發環境的配置

OpenCV3.1.0+VS2015開發環境配置   摘要:         由於最近AR(增強現實)這個概念非常火爆,各種基於AR的應用及遊戲逐漸面向大眾,而在AR中最重要的兩個技術就是跟蹤識別和增強渲

使用Visual Studio 2015 開發ASP.NET MVC 5 專案部署到Mono/Jexus

最新的Mono 4.4已經支援執行asp.net mvc5專案,有的同學聽了這句話就興高采烈的拿起Visual Studio 2015建立了一個mvc 5的專案,然後部署到Mono上,瀏覽下發現一堆錯誤出現,心中一萬隻草泥馬奔騰而來,這也叫支援嗎,這個問題是Visual Studio造成的,不相信的話可以使用

Arduino 高階教程 02:用 Visual Studio 2015 開發 Arduino 應用程式(一)

Arduino IDE 的缺點 雖然 Arduino 很流行很火爆,但是 Arduino IDE 卻非常、非常、非常弱。編寫程式碼很不方便,只能說提供了一個最基本的寫程式碼的工具而已,除錯程式碼也很不方便。而且,Arduino IDE 中寫程式碼,只能是把

Visual Studio 2015 開發環境

下載工具 在我們學習 C# 開發之前,先下載整合開發環境(IDE,Integrated Development Environment )。 下載地址:https://www.visualstudi

【VS開發Visual Studio 2015 無法解析的外部的符號 __vsnwprintf_s

IDE:Visual Studio 2015 作業系統:win 10   問題: 編譯的時候可能會遇到 ERROR LNK2019:無法解析的外部的符號 __vsnwprintf_s,或者是_sscanf,_sscanf_s等等一系列形如這樣的函式   疑

在windows10 下搭建 visual studio 2015 驅動程式開發環境

需要做的準備 一臺安裝好windwos10 的電腦(工作機) 下載windwos10 安裝包(用來安裝虛擬機器)這裡 下載最新版本的VirtualBox(虛擬機器軟體 也可以使用vmware)這裡 下載visual studio 2015 安裝包這裡 下載w

關於 Visual Studio 中配置 Python的一些問題(二)Django

VS 2017現在對python和Django提供了比較完善的支援,這裡簡單記錄幾個VS建立Djongo專案和Linux下的不同之處。環境搭建1. 慣例還是建立一個 Python 空 Django 專案。2. 進入專案後,VS會提示你安裝 Django 包,建議使用虛擬環境。

Visual Studio 2017進行Python開發環境的搭建,使用VS2017進行python程式碼的編寫。

Visual Studio 2017進行Python開發環境的搭建,使用VS2017進行python程式碼的編寫。 前提:已經安裝過VS2017且進行過配置。 第一部分: Python環境的搭建: 建議使用Python3.5.3 32位版本直譯器,推薦下載地址:https://python123.io

使用Visual Studio 2015 Community 開發windows服務

  昨天研究在.NET下開發Windows服務程式,期間遇到一些小問題,這裡僅將自己的開發過程和需要注意的地方寫下和廣大網友分享……    1、基礎     Windows服務是指系統啟動時能夠自己執行的程式。Windows服務可以在沒有互動介面的情況下在後臺進行業務的處理。   .NET下開發Wind

初試Visual Studio Code配置Python開發環境

Visual Studio Code Visual Studio Code (VSCode)為MS所開發的code editing tool,免費且開源,並支援Windows,Mac OS,Linux

Visual Studio 2015】安全開發生命週期(SDL)檢查

    有的時候寫的程式碼明明沒有什麼問題就是編譯不過,我就覺得奇怪了。我是編譯通過的程式碼,怎麼就有問題呢?在VS2015執行,還真是有問題。看錯誤提示,是VS將這個函式的使用當做錯誤對待了!     在以前的VS版本中,檢測並不嚴格,對於很多警告,我們程式設計師通常都是忽

Caffe+windows7+Visual Studio 2015+Python+CPU配置記錄

前言 以前配置過caffe,當時是Visual Studio 2013,因為當時的教程只有2013的。重灌電腦之後,一直沒有靜下來去配置caffe,失敗過好幾次。這次算是找對教程和資源了,終於配置成功。本文不記錄具體步驟,只給出我參考的連結,需要的人還

基於Visual Studio Code搭建Python開發環境

安裝Visual Studio Code 官網下載Visual Studio Code 下載路徑:https://code.visualstudio.com/Download,注意系統型別和版本; 注:本作者的例項都是基於windows10 64位+Python3.6.4+VSCodeSet

【Asp.Net Core】一、Visual Studio 2015 和 .NET Core 安裝

過濾器 int 3.2 屬性和方法 static 資料 c3p0 案例 handling 安裝 Visual Studio 和 .NET Core 1、安裝 Visual Studio Community 2015,選擇 Community 下載並執行默認安裝。Visual

Visual Studio 2015 update 3各版本下載地址

了解 dsc php post com static unit test label Visual Studio 2015 update 3各版本下載地址 標簽: VS2015update 3 2016-11-28 14:32 2899人閱讀 評論(0) 收藏 舉報

Visual Studio 2015 Update 1 安裝到最後 KB3022398 錯誤解決方法

content cal style 程序 修復 sof microsoft data key 最後一步遇到一個錯誤的確讓人心寒 只是我們還是得一步步解決。別去卸載重裝。太費時 首先打開 regedit 註冊表,依次進入: 1:HKEY_LOCA

使用Visual Studio 2017開發Linux程序

div roo g++ window 不同 rom cto cpp 工作目錄 環境:   win7_x64旗艦版、VS2017企業版、VMware10.0.2、CentOS7   在CentOS7上首先需要安裝gcc、g++和gdbserver,這裏就不多說 一、安裝VS2