最后一周,django!
此项目,学习虚拟环境的创建与进入,在虚拟环境中创建django项目,创建django App。
- 前戏
1.创建虚拟环境
在一个文件夹下shift+右键,打开cmd,输入python -m venv myproject,这里的myproject是自定义的名字。
D:\vir>python -m venv myproject
然后在该文件夹里,会有一个刚创建的myproject文件夹。
2.进入虚拟环境
虚拟环境建好之后,我们需要通过myproject文件夹里面的Scripts下的activate来启动它。
D:\vir>myproject\Scripts\activate
(myproject) D:\vir>Scripts\activate #前面的(myproject)就是显示我们进入成功
3.进入虚拟环境后的准备
安装django,因为我装过1.9.7版本,所以让它在虚拟环境中也用这个版本,就不用下载新的了。
(myproject) D:\vir>pip install "django=1.9.7"
...
Installing collected packages: django
Successfully installed django-1.9.7 #成功的标志
- 起步
1.创建django项目
前面,我们创建了虚拟环境,也在虚拟环境中安装了django。
现在,我们进入虚拟环境的文件夹,创建一个django项目。
(myproject) D:\vir>cd myproject
(myproject) D:\vir\myproject>python django-admin.py startproject my_one
my_one是我自定义的项目的名字,文件夹里也会多出一些文件:
mysite/
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
2.文件夹里的manage.py
它是 Django 提供的命令列工具,可以利用它同步资料库、建立 app 等等,指令的使用方式如下:
python manage.py <command> [options]
python manage.py -h #help
- 让我们跑起来!
1.runserver来启动发射
(myproject) D:\vir\myproject>cd my_one #进入django文件夹
(myproject) D:\vir\myproject\my_one>python manage.py runserver
它会显示:
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退出
让我们进入http://127.0.0.1:8000/:
2.建立 Django application(app)
2.1按下 CTRL+C,关闭web server 回到命令列。让我们利用 startapp建立第一个 Django app -- my_app1:
(myproject) D:\vir\myproject\my_one>python manage.py startapp my_app1
startapp 会按照你的命名建立一个同名资料夹和 app 预设的档案结构如下:
my_app1
├── __init__.py
├── admin.py
├── migrations
├── models.py
├── tests.py
└── views.py
2.2将新增的 Django app 加入设定档
在前一个指令,我们透过 Django 命令列工具建立了 my_app1 这个 app。但若要让 Django 知道要管理哪些 apps,还需再调整设定档。
打开 my_one/settings.py,找到 INSTALLED_APPS,调整如下:
# 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',
)
请注意 app 之间有时候需要特定先后顺序。在此,我们将自定的 my_app1 加在最后面。
- 总结
目前为止,我们创建了一个名为myproject的虚拟环境,并在里面创建了一个 my_one的django项目,以及一个 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