1. 程式人生 > >windows搭建Django專案,以及資料庫遷移

windows搭建Django專案,以及資料庫遷移

首先,windows、Django、mysql和vscode是本文用到的工具

1、安裝python環境和mysql資料庫

     (a) 安裝mysql資料庫,需要注意的是把db移到別的盤,在另一篇有講,詳細教程也有貼,自行檢視。

     (b) python環境的話,我比較傾向於用anaconda3去裝python3.5,喜歡用最新的版本的python。官網可下載。anaconda package  可手動下載需要的包。或者conda或pip

2、推薦vscode程式碼編輯環境

3、新建Django專案

    (1)新建一個資料夾,cd到該檔案下,建立專案:(首先django的庫別忘pip下來)

django-admin startproject oa  #新建gjango專案,並用vscode開啟。操作如下

           ..

         code . 注意後面有個點。這是將vscode的路徑加到path裡,所以可以從這裡直接開啟,點表示將現在路徑作為專案工作空間。生成的檔案目錄如下:

           ..

           settings.py是配置專案的路徑、資料庫等,預設是sqlite,我採用mysql資料庫儲存資料。url.py是路由路徑。manage.py是一個工具。可以通過manage.py拉起整個專案。到現在為止,你可以在控制檯通過如下命令拉起專案:  

python manage.py runserver 0.0.0.0:8000   #在此之前,可以通過python manage.py help檢視可用命令
E:\bin\Anaconda3\python.exe manage.py runserver 0.0.0.0:8000  #我這裡用的是這樣的方式,指定python去呼叫。因為版本比較多

       在瀏覽器試試http://127.0.0.1:8000/admin/,訪問一下django提供的後臺管理,滿強大的。

  (2)發現admin需要使用者名稱和密碼。這樣的話,就先要去settings.py檔案配置mysql資料庫,同時需要在settings.py同目錄下的__init__.py檔案裡新增以下兩行(別忘下載pymysql包):

         import pymysql

         pymysql.install_as_MySQLdb()

     然後修改settings.py檔案下資料庫配置,如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_oa',
        'USER': 'root', 
        'PASSWORD': '*****',
        'HOST': '127.0.0.1', 
        'PORT': '3306', 
    }
}
ALLOWED_HOSTS = ['*'] # *設定url,在瀏覽器上訪問的。可設定主機ip,然後用http://*:8000/admin去訪問

    然後用以下命令在控制檯建立超級使用者,郵箱可不寫: 

python manage.py createsuperuser #建立超級使用者

    如果報右邊的錯誤,..

   按照如下命令再執行一遍:

python manage.py migrate
python manage.py createsuperuser  #先執行上面的,再執行這個就ok了

      這是因為在建立超級使用者之前要做一個數據庫遷移。


(3)接下來,是建立自己的app了。 用以下命令建立好之後,需要在settings.py裡註冊app(如下)。

python manage.py startapp app   #app是自己應用的名字

      .....

     接下來,比如你在自己的mysql裡已經建好表了,那麼就可以採用資料遷移的方式,直接與django裡的models繫結:

保證django專案已經執行(runserver)起來(很重要!!!)

python manage.py inspectdb    #這個命令可以檢視現有的模型檔案(models.py)!!!!!!!!!!!!

E:\codewyan\oa>python manage.py makemigrations  #採用這兩條命令,出現如下提示,則成功
<class 'demo.models.OaChannelTable'>
Migrations for 'demo':
  demo\migrations\0001_initial.py
    - Create model OaChannelTable
    - Create model OaPropTable

E:\codewyan\oa>python manage.py migrate
<class 'demo.models.OaChannelTable'>
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, demo, sessions
Running migrations:
  Applying demo.0001_initial... OK

      接下來,就可以在自己的views.py裡訪問models裡的類(models會將資料表對映為類,然後採用類名.objects.all()[:10]訪問資料庫,得到一個查詢的queryset)。

      坑還有很多,筆者在後面的學習中會不斷積累並記錄的。

     一切順利的話,django就建好了!當然,過程中可能有意外,bug無時無刻不在。google,百度都可以,這個過程也是學習很快的過程,不要怕bug!筆者也是踩著坑過來的。