1. 程式人生 > >pycharm 執行django伺服器端 以及建立app方法

pycharm 執行django伺服器端 以及建立app方法

我們先來了解一下一些必要的概念。Django 裡什麼東西叫 APP 呢?

我們已經建立了 project , 那麼 project 和 APP 之間到底有什麼不同呢?它們的區別就是一個是配置另一個是程式碼:

一個project包含很多個Django app以及對它們的配置。

技術上,project的作用是提供配置檔案,比方說哪裡定義資料庫連線資訊, 安裝的app列表, TEMPLATE_DIRS ,等等。

一個app是一套Django功能的集合,通常包括模型和檢視,按Python的包結構的方式存在。

例如,Django本身內建有一些app,例如註釋系統和自動管理介面。 app的一個關鍵點是它們是很容易移植到其他project和被多個project複用。

建立一個APP

在 “PythonProject” 專案檔案下輸入下面的命令來建立 “nowamagic” app:

1 python manage.py startapp nowamagic

這個命令並沒有輸出什麼,它只在 PythonProject 的目錄裡建立了一個 nowamagic 目錄。 讓我們來看看這個目錄的內容:

1 nowamagic/
2 __init__.py
3 models.py
4 tests.py
5 views.py

這個目錄包含了這個app的模型和檢視。

使用你最喜歡的文字編輯器檢視一下 models.py 和 views.py 檔案的內容。 它們都是空的,除了 models.py 裡有一個 import。這就是你Django app的基礎。

  • 對於如何架構Django程式碼並沒有快速成套的規則。 如果你只是建造一個簡單的Web站點,那麼可能你只需要一個app就可以了; 但如果是一個包含許多不相關的模組的複雜的網站,例如電子商務和社群之類的站點,那麼你可能需要把這些模組劃分成不同的app,以便以後複用。

不錯,你可以不用建立app,這一點應經被我們之前編寫的檢視函式的例子證明了 。 在那些例子中,我們只是簡單的建立了一個稱為views.py的檔案,編寫了一些函式並在URLconf中設定了各個函式的對映。 這些情況都不需要使用apps。

但是,系統對app有一個約定: 如果你使用了Django的資料庫層(模型),你必須建立一個Django

 app。模型必須存放在apps中。因此,為了開始建造我們的模型,我們必須建立一個新的app。

後面你會發現,APP會給我們帶來多大的便利。

安裝Django 

下載Django包,解壓縮。

CMD 進入解壓路徑下。

執行:python setup.py install 

增加環境變數:

C:\Python27\Scripts

測試django是否安裝成功

shell 

import django

django.VERSION

把Django匯入專案

CMD 進入專案路徑

執行 django-admin.py startproject 專案名  

 執行開發伺服器

專案Django路徑下  python manage.py runserver

python manage.py runserver 8000

通過指定一個 IP 地址,你可以告訴伺服器–允許非本地連線訪問。 如果你想和其他開發人員共享同一開發站點的話,該功能特別有用。 `` 0.0.0.0`` 這個 IP 地址,告訴伺服器去偵聽任意的網路介面。 

python manage.py runserver 0.0.0.0:8000 以上是在cmd終端執行的django伺服器端接下來要在pycharm上執行伺服器端:
1. 在PyCharm→Settings→Project Interpreter中安裝Django 1.9(Django框架程式碼)、PyMySQL 0.7.1(Django與MySQL Server之間的聯結器);

PyCharm中的專案所使用的Python直譯器以及包管理介面
2. 安裝MySQL伺服器端(推薦直接安裝MySQL Workbench,包括了Server和Client),並確認“計算機服務”中的“MySQL57”已啟動;

確認MySQL57服務已啟動
3. Django專案中配置settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #設定為mysql資料庫
        'NAME': '',  #mysql資料庫名
        'USER': '',  #mysql使用者名稱,留空則預設為當前linux使用者名稱
        'PASSWORD': '',   #mysql密碼
        'HOST': 'localhost',  #留空預設為localhost
        'PORT': '3306',  #留空預設為3306埠
    }
}
4. Django專案中配置__init__.py

由於django2.x版本時支援的是MySQLdb,PyMySQL是作為停更的MySQLdb支援python3.x,因此需要新增如下設定:

import pymysql
pymysql.install_as_MySQLdb()
5. 開啟Workbench,新建Model(Schema),命名與步驟3中的'NAME'一致,儲存為.mwb檔案。新建任意一個table(建立任意一列),然後在選單欄Database中執行Forward Engineer,之後可以在Navigator欄中的SCHEMAS中看到之前新建的Schema(eds)。若在新建Model後直接執行Forward Engineer,則會因為是空模型而建立失敗。

在MySQL中建立成功的eds
6. 在PyCharm中的Terminal中執行以下命令,可以在MySQL Server中建立django專案中的定義的所有Model。
python manage.py makemigrations
python manage.py migrate
7. 在PyCharm中的Python Console中執行如下命令,可以在資料庫eds中的polls_question表中建立新的資料條目。
from django.utils import timezone
from polls.models import Question
Question(question_text='Hello 2016', pub_date=timezone.now()).save()