1. 搭建项目环境

阅读: 23811


一、建立虚拟环境

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

三、创建工程

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

1.png-52.1kB

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

2.png-54kB

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

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

3.png-68.6kB

四、创建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中的目录结构:

4.png-18.5kB

五、 设置时区和语言

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,确定后,点击绿色三角,走你!

5.png-83.1kB

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

6.png-34.4kB

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

7.png-27.9kB



评论总数: 11



user_image
pycharm不能运行2.0版本的Django

在虚拟环境下装了2.0版本的,在命令行运行python manage.py makemigrations时报错 ImportError: cannot import name 'path' 什么原因?

user_image
使用pycharm创建django工程的小伙伴注意啦

如果使用pycharm进行django工程的创建的话,即使你的环境中已经安装了指定版本的django,但是在创建时依然会继续安装最新版本的django,这一点真是 太坑了。我没有使用博主推荐的virtualenv的方法,不过也很类似,我使用了anaconda进行环境管理。 所以大家如果使用最新的django ==2.0.5的话那无所谓了,如果使用低版本的django,建议还是使用命令一步一步创建project和app吧

user_image
可以自己修改的

这里会自动安装Django的最新版本,使用下面的方法安装指定版本 https://blog.csdn.net/weixin_42305814/article/details/80742090

user_image
PyCharm创建项目时报错

Error creating Django application: Error on python side. Exit code: 1, err: CommandError: 'logsite' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name. 请问高手,怎么解决?

user_image
^_^

问题已解决。。

user_image
建立虚拟环境好像打错了博主

virtualenv --no-site_packages mysite_env,应该是no-site-packages吧,就在第一章下面搭建虚拟环境的代码..

user_image
感谢指出

已经修改

user_image
为啥不是北京时间

因为,django官方文档给的时间表里只有上海时间啊,zh也分多种,简体就是这种的

user_image
大多数计算机相关的时区概念中,都是上海,没有北京时间。

这应该是一个历史遗留问题。

user_image
指出错误

文章中写到: 验证一下Python版本,虽然是3.6.1,但使用where python查看一下,就会发现python命令指向的并不是我们建立的虚拟环境。 这句话会为新手认为:C:\Python36\python.exe I:\Anaconda3\python.exe 这两句话,看出python命令指向的并不是我们建立的虚拟环境. 实际上因为: F:\Django_course\mysite(没指向虚拟环境) (mysite_env) F:\Django_course\mysite(指向虚拟环境) 我新手,请谅解!找了半天原因

user_image
错误在哪里?

....