首先,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!筆者也是踩着坑過來的。