当前,较新的Pycharm版本都支持同时创建虚拟环境和Django工程。所以我们下面的操作都在Pycharm中进行。
首先打开Pycharm,进入创建工程的对话框,注意下面的红框提示:
再点开下方的More Settings:
没什么问题了,就点击Create吧。
下面就是一段时间的等待,Pycharm会帮助我们自动创建虚拟环境,以及安装最新版本的Django。
创建完成之后,进入Pycharm的设置菜单,可以看到当前Django版本是最新的2.2版本。如果你要指定过去的版本,比如2.1、1.11等,那就不能这么操作了,需要在命令行下自己创建虚拟环境并安装django。或者在这里先删除Django,再安装你想要的指定版本。
看下我们当前的状态,注意venv这个虚拟环境目录,以及我们额外创建的templats目录:
点击Pycharm最下方工具栏中的Terminal按钮,进入终端界面,可以看到,我们已经在工程的根目录下,并且自动进入了虚拟环境内。(如果你不是通过Pycharm创建的虚拟环境,那么在这里,你可能需要手动激活虚拟环境。)
使用where python
和python -V
查看一下环境:
(venv) D:\work\2019\for_test\mysite>where python D:\work\2019\for_test\mysite\venv\Scripts\python.exe C:\Program Files\Python37\python.exe C:\Program Files\Python36\python.exe C:\Users\feixuelym\Anaconda3\python.exe (venv) D:\work\2019\for_test\mysite>python -V Python 3.7.3
接下来运行python manage.py startapp login
创建login这个app。
按照上面的步骤操作完后,login应用就创建成功了,让我们看一下Pycharm中的目录结构:
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
),注意USE_TZ 改成False了。
# 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
,确定后,点击绿色三角,走你!
在本机的浏览器中访问http://127.0.0.1:8000/
,或者点击Pycharm界面里的链接:
顺利的话,在浏览器中,你可以看到如下的欢迎界面:
在虚拟环境下装了2.0版本的,在命令行运行python manage.py makemigrations时报错 ImportError: cannot import name 'path' 什么原因?
如果使用pycharm进行django工程的创建的话,即使你的环境中已经安装了指定版本的django,但是在创建时依然会继续安装最新版本的django,这一点真是 太坑了。我没有使用博主推荐的virtualenv的方法,不过也很类似,我使用了anaconda进行环境管理。 所以大家如果使用最新的django ==2.0.5的话那无所谓了,如果使用低版本的django,建议还是使用命令一步一步创建project和app吧
这里会自动安装Django的最新版本,使用下面的方法安装指定版本 https://blog.csdn.net/weixin_42305814/article/details/80742090
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. 请问高手,怎么解决?
问题已解决。。
virtualenv --no-site_packages mysite_env,应该是no-site-packages吧,就在第一章下面搭建虚拟环境的代码..
已经修改
因为,django官方文档给的时间表里只有上海时间啊,zh也分多种,简体就是这种的
这应该是一个历史遗留问题。
文章中写到: 验证一下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(指向虚拟环境) 我新手,请谅解!找了半天原因
....