最后一周,django!
此項(xiàng)目,學(xué)習(xí)虛擬環(huán)境的創(chuàng)建與進(jìn)入,在虛擬環(huán)境中創(chuàng)建django項(xiàng)目,創(chuàng)建django App。
- 前戲
1.創(chuàng)建虛擬環(huán)境
在一個(gè)文件夾下shift+右鍵,打開cmd,輸入python -m venv myproject,這里的myproject是自定義的名字。
D:\vir>python -m venv myproject
然后在該文件夾里,會(huì)有一個(gè)剛創(chuàng)建的myproject文件夾。
2.進(jìn)入虛擬環(huán)境
虛擬環(huán)境建好之后,我們需要通過myproject文件夾里面的Scripts下的activate來(lái)啟動(dòng)它。
D:\vir>myproject\Scripts\activate
(myproject) D:\vir>Scripts\activate #前面的(myproject)就是顯示我們進(jìn)入成功
3.進(jìn)入虛擬環(huán)境后的準(zhǔn)備
安裝django,因?yàn)槲已b過1.9.7版本,所以讓它在虛擬環(huán)境中也用這個(gè)版本,就不用下載新的了。
(myproject) D:\vir>pip install "django=1.9.7"
...
Installing collected packages: django
Successfully installed django-1.9.7 #成功的標(biāo)志
- 起步
1.創(chuàng)建django項(xiàng)目
前面,我們創(chuàng)建了虛擬環(huán)境,也在虛擬環(huán)境中安裝了django。
現(xiàn)在,我們進(jìn)入虛擬環(huán)境的文件夾,創(chuàng)建一個(gè)django項(xiàng)目。
(myproject) D:\vir>cd myproject
(myproject) D:\vir\myproject>python django-admin.py startproject my_one
my_one是我自定義的項(xiàng)目的名字,文件夾里也會(huì)多出一些文件:
mysite/
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
2.文件夾里的manage.py
它是 Django 提供的命令列工具,可以利用它同步資料庫(kù)、建立 app 等等,指令的使用方式如下:
python manage.py <command> [options]
python manage.py -h #help
- 讓我們跑起來(lái)!
1.runserver來(lái)啟動(dòng)發(fā)射
(myproject) D:\vir\myproject>cd my_one #進(jìn)入django文件夾
(myproject) D:\vir\myproject\my_one>python manage.py runserver
它會(huì)顯示:
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
August 08, 2016 - 10:58:15
Django version 1.9.7, using settings 'my_one.settings'
Starting development server at http://127.0.0.1:8000/ #看我看我?。?Quit the server with CTRL-BREAK. #ctrl+c退出
讓我們進(jìn)入http://127.0.0.1:8000/:

2.建立 Django application(app)
2.1按下 CTRL+C,關(guān)閉web server 回到命令列。讓我們利用 startapp建立第一個(gè) Django app -- my_app1:
(myproject) D:\vir\myproject\my_one>python manage.py startapp my_app1
startapp 會(huì)按照你的命名建立一個(gè)同名資料夾和 app 預(yù)設(shè)的檔案結(jié)構(gòu)如下:
my_app1
├── __init__.py
├── admin.py
├── migrations
├── models.py
├── tests.py
└── views.py
2.2將新增的 Django app 加入設(shè)定檔
在前一個(gè)指令,我們透過 Django 命令列工具建立了 my_app1 這個(gè) app。但若要讓 Django 知道要管理哪些 apps,還需再調(diào)整設(shè)定檔。
打開 my_one/settings.py,找到 INSTALLED_APPS,調(diào)整如下:
# my_one/settings.py
...
# Application definition
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'my_app1',
)
請(qǐng)注意 app 之間有時(shí)候需要特定先后順序。在此,我們將自定的 my_app1 加在最后面。
- 總結(jié)
目前為止,我們創(chuàng)建了一個(gè)名為myproject的虛擬環(huán)境,并在里面創(chuàng)建了一個(gè) my_one的django項(xiàng)目,以及一個(gè) my_app1 的 Django app。
my_one
├── manage.py
├── my_one
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── my_app1
├── __init__.py
├── admin.py
├── migrations
├── models.py
├── tests.py
└── views.py