Django(10)

1. 搭建项目环境

一、建立虚拟环境

每当我们开始一个新项目的时候,通常都会搭建一个全新、独立、隔离的项目环境,这样做的好处自然不必多说。有很多种建立项目虚拟环境的工具,使用比较普遍的是Python中的virtualenv。

virtualenv工具请自行安装,具体安装方法和使用说明,参考站内Python教程的《virtualenv 虚拟环境》章节。

在Windows的CMD中,进入指定的目录,这里是Django_course。使用下面的方式,建立一个mysite_env虚拟环境:

virtualenv --no-site-packages mysite_env

过程如下:

F:\Django_course>virtualenv --no-site-packages mysite_env
Using base prefix 'c:\\python36'
New python executable in F:\Django_course\mysite_env\Scripts\python.exe
Installing setuptools, pip, wheel...done.

虚拟环境建立得很快,我们通过--no-site-packages,指定只需要一个干净的环境,不要原来带的各种第三方库。整个文件夹大概如下面的样子,重点是Scripts目录。

F:.
├─Include
│  └─greenlet
├─Lib
│  ├─collections
│  ├─distutils
│  ├─encodings
│  ├─importlib
│  ├─site-packages
......
├─Scripts
└─tcl
    ├─tcl8.6
    └─tk8.6

二、安装Django

进入mysite_env目录下的Scripts子目录,运行activate命令,**该虚拟环境,此时的命令行提示符将以(mysite_env)开头。运行pip install django命令,自动安装最新版本的Django1.11.7和唯一的依赖库pytz。

F:\Django_course>cd mysite_env

F:\Django_course\mysite_env>cd Scripts

F:\Django_course\mysite_env\Scripts>activate

(mysite_env) F:\Django_course\mysite_env\Scripts>pip install django
Requirement already satisfied: django in f:\django_course\mysite_env\lib\site-pa
ckages
Requirement already satisfied: pytz in f:\django_course\mysite_env\lib\site-pack
ages (from django)

(mysite_env) F:\Django_course\mysite_env\Scripts>pip install django
Collecting django
  Using cached Django-1.11.7-py2.py3-none-any.whl
Collecting pytz (from django)
  Using cached pytz-2017.3-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-1.11.7 pytz-2017.3

如果你需要退出虚拟环境,可以使用deactive命令。

我安装的时候失败了  指令改为python -m pip install django 成功

 

三、创建工程

进入Pycharm,File->new Project创建新工程:

Django(10)

按图示在左侧选择Django,然后将工程Location设置在虚拟环境同一级的目录内,也就是F:\Django_course,工程名字使用国际惯例mysite。在右侧的interpreter选择齿轮图标处点击选择add local,然后在弹出的界面中,找到我们刚才建立的虚拟环境所在位置,最后确定。

Django(10)

这样,我们就将Pycharm当前Django环境的解释器指定为我们刚才建立的虚拟环境了。

进入Pycharm的settings配置菜单,可以看到当前是一个非常干净的系统,除了Django和pytz,没有任何其它第三方库。

Django(10)

四、创建app

点击Pycharm最下方工具栏中的Terminal按钮,进入终端界面,可以看到,我们已经在工程目录的根路径下。

验证一下Python版本,虽然是3.6.1,但使用where python查看一下,就会发现python命令指向的并不是我们建立的虚拟环境。

F:\Django_course\mysite>python -V
Python 3.6.1

F:\Django_course\mysite>where python
C:\Python36\python.exe
I:\Anaconda3\python.exe

所以要按下面的操作,先**虚拟环境,然后再运行python manage.py startapp login

F:\Django_course\mysite>dir
  F:\Django_course\mysite 的目录                                                                                                                        

2017/11/06  21:33    <DIR>          .
2017/11/06  21:33    <DIR>          ..
2017/11/06  21:54    <DIR>          .idea
2017/11/06  21:33               826 manage.py
2017/11/06  21:33    <DIR>          mysite
2017/11/06  21:33    <DIR>          templates
               1 个文件            826 字节                                             

F:\Django_course\mysite>cd ..

F:\Django_course>dir
 F:\Django_course 的目录                                                                                                                               

2017/11/06  21:32    <DIR>          .
2017/11/06  21:32    <DIR>          ..
2017/11/06  21:33    <DIR>          mysite
2017/11/06  21:09    <DIR>          mysite_env
               0 个文件              0 字节                                                                                                            


F:\Django_course>cd mysite_env

F:\Django_course\mysite_env>cd Scripts

F:\Django_course\mysite_env\Scripts>activate


## 注意这里,还要退回Django项目根目录,否则找不到manage.py文件
(mysite_env) F:\Django_course\mysite_env\Scripts>python manage.py startapp login
python: can't open file 'manage.py': [Errno 2] No such file or directory

(mysite_env) F:\Django_course\mysite_env\Scripts>cd ..

(mysite_env) F:\Django_course\mysite_env>cd ..

(mysite_env) F:\Django_course>cd mysite

(mysite_env) F:\Django_course\mysite>python manage.py startapp login

以后凡是在Pycharm终端中使用Python manage.py ....命令的时候,都要注意**虚拟环境的问题。

按照上面的步骤操作完后,login应用就创建成功了,让我们看一下Pycharm中的目录结构:

Django(10)

五、 设置时区和语言

Django默认使用美国时间和英语,在项目的settings文件中,如下所示:

# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

我们把它改为亚洲/上海时间和中文(别问我为什么没有北京时间,也别把语言写成zh-CN)。

# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

六、 启动开发服务器

现在,我们可以启动一下开发服务器,测试一下我们的工程了。

在Pycharm的Run/Debug Configurations配置界面里,将HOST设置为127.0.0.1,Port保持原样的8000,确定后,点击绿色三角,走你!

Django(10)

在本机的浏览器中访问http://127.0.0.1:8000/,或者点击Pycharm界面里的链接:

Django(10)

顺利地话,在浏览器中,你可以看到如下的欢迎界面:

Django(10)