Django是基于Python的Web框架,依赖Python环境,所以需要提前安装好Python解释器。
关于Python的安装,请参考https://www.liujiangblog.com站点中Python教程的相关部分,这里不再赘述。
建议安装最新版本的Python!
Django各版本对Python版本的依赖关系如下表所示:
Django 版本 | Python 版本 |
---|---|
1.11 | 2.7, 3.4, 3.5, 3.6, 3.7 (1.11.17 添加) |
2.0 | 3.4,3.5,3.6,3.7 |
2.1 | 3.5,3.6,3.7 |
2.2 | 3.5, 3.6, 3.7, 3.8 (2.2.8 添加) |
3.0 | 3.6, 3.7, 3.8 |
3.1 | 3.6, 3.7, 3.8 |
Django本身的版本规划时间图如下所示:
未来版本的计划节点:
版本号 | 预计发布时间 | 主线维护结束时间 | 扩展支持结束时间 |
---|---|---|---|
3.2 LTS | 2021年4月 | 2021年12月 | 2024年4月 |
4.0 | 2021年12月 | 2022年8月 | 2023年4月 |
4.1 | 2022年8月 | 2023年4月 | 2023年12月 |
4.2 LTS | 2023年4月 | 2023年12月 | 2026年4月 |
从上表中可以看出Django的版本更新迭代非常快,大版本号几乎两年加一。实际上,对于非重度用户,Django的版本差别并没有你想象中那么大,完全不必为版本的问题头疼。
如果你是通过升级的方式安装Django,那么你需要先卸载旧的版本。
Django提供3种发行版本,推荐使用官方的稳定版本:
Django本质上是Python语言的一个类库,因此可以通过pip工具安装。这也是最简便、最好的安装方式。不建议通过下载安装包或者编译源码进行安装的方法,除非你的环境无法连接外部网络。
以windows系统中使用pip命令安装为例:
win+r
,调出cmd,以管理员身份运行命令:pip install django
,自动安装PyPi提供的最新版本。
如果要指定版本,可使用pip install django==3.0.6
这种形式。
在Linux操作系统中,也是一样,使用pip工具包安装Django。
进入Python交互式环境(注意一定要进入刚才安装了Django的Python解释器),按下面所示查看安装版本:
>>> import django >>> django.get_version() 3.1
或者使用pip list
命令,查看是否存在Django模块。
成功安装Django后,以windows为例,在Python解释器目录下的Scripts文件夹中可找到一个django-admin.exe
文件,这是Django的核心管理程序,最好将它加入操作系统的环境变量中,这样在以后的调用会比较方便。
如何进入环境变量设置界面,请参考Python教程中的相关部分。如下图所示,在Path变量中添加Scripts目录。
回到cmd界面,直接运行django-admin help
,如果能看到下面的内容表示环境变量设置成功。
D:\test>django-admin help Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell ...以下省略
实际上,对Windows操作系统环境变量path的编辑,只是为了在命令行下可以无需带路径,直接执行一些程序,而不会出现程序文件无法找到的错误。
在windows的cmd环境中(Linux类同),输入下面的命令:
django-admin startproject mysite
这样就会在当前目录下创建一个叫做mysite
的Django项目。
D:\test>django-admin startproject mysite D:\test>dir D:\test 的目录 <DIR> . <DIR> .. <DIR> mysite
可以看到Django自动帮我们创建了一个mysite
文件夹,这是项目的根目录。在mysite根目录中,又有一个mysite目录,这是整个项目的配置文件目录(一定不要和同名的根目录混淆),还有一个manage.py
文件,它是整个项目的管理脚本。
D:\test>cd mysite D:\test\mysite>dir D:\test\mysite 的目录 <DIR> . <DIR> .. manage.py <DIR> mysite D:\test\mysite>cd mysite D:\test\mysite\mysite>dir D:\test\mysite\mysite 的目录 <DIR> . <DIR> .. settings.py urls.py wsgi.py __init__.py
回到项目根目录下,运行python manage.py runserver
,Django会以127.0.0.1:8000
这个默认配置启动开发服务器。
D:\test\mysite>python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). August 31, 2020 - 08:57:27 Django version 3.1, using settings 'django3_test.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
打开你的浏览器,在地址栏输入127.0.0.1:8000
,如果看到如下的界面,说明Django一切正常,你可以开始Django之旅了!
事实上,我们一般不使用命令行,而是直接在Pycharm中创建Django项目。
Pycharm是进行Django开发的最佳IDE,请大家自行安装,建议使用最新
的专业
版本。(非专业版的Pycharm不提供Django开发模块,非最新版的Pycharm可能对最新的Python或者Django支持不好。比如Pycharm2018对Python3.8的支持就不好,并且这些坑不好填。)
2018以后的Pycharm版本都支持同时创建虚拟环境和Django项目。
下面以Pycharm 2020.1专业版为例。(可以安装中文插件)
首先打开Pycharm,点击file-->new project
,选择左边的Django,出现下面的对话框,注意下面的红框提示:
使用此项目新建环境
处选择Virtualenv(这可能需要你提前使用pip install virtualenv
命令安装虚拟工具virtualenv)。通常情况下,虚拟环境会以venv的名字,自动在工程目录下生成。现有解释器
再点开下方的More Settings
:
template
是目录的名字,可换成任何你喜欢的名字。这里我们不选择,因为可能出现os模块缺少的bug。没什么问题了,就点击Create吧。
下面就是一段时间的等待,Pycharm会帮助我们自动创建虚拟环境,以及安装最新版本的Django。
创建完成之后,进入Pycharm的解释器设置菜单,可以看到当前Django版本是3.1版本。如果你要指定过去的版本,比如2.2、1.11等,那就不能这么操作了,需要在命令行下自己创建虚拟环境并安装django。或者在这里先删除Django,再安装你想要的指定版本。
看下我们当前的状态,注意venv虚拟环境目录。
注意,注意,注意!:从Django3.1开始,官方使用
pathlib
替代了os.path
。在settings.py
文件中,第一行就是from pathlib import Path
,并且BASE_DIR
是这么定义的:
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
但是在Pycharm的早期版本中(包括教程中使用的2020.1版本),依然使用的是
os.path
,如果你在创建项目的时候同时指定了template目录,那么可能在运行服务器的时候出现缺少os
模块的错误。此时,只需要在settings.py
文件顶部添加import os
即可。
点击绿色的三角,启动默认的开发服务器,如果看到欢迎界面,说明一切OK!
注意:第一次启动服务器后,Django会默认创建一个db.sqlite3
文件,这是SQLite3数据库。
如果没有特别说明,教程将在Pycharm中开发Django项目。
如果希望汉化Pycharm的,可以在settings的plugins中搜索chinese简体包,安装即可。
Django很快安装上了,用Django安装包一直没搞定,发个评论感谢一下老师!
C:\Users\wfr\mysite>python manage.py runserver File "manage.py", line 17 ) from exc ^ SyntaxError: invalid syntax 大佬,这是什么问题呀?Python3.8,默认安装的是Django4.0
自己解决了,自己本来安装有Python2,结果默认是在python2下运行“python manage.py runserver”的。变为python3 manage.py runserver就可以了。(在Python3路径下,复制粘贴一个Python,重命名为Python3就可以)
老師您好: django-admin startproject mysite(能创建相应文件夹),可是接下来的代码就全都“不是内部或外部命令“ 一直出現這問題,我python也重裝,path也設置了...請問還有那裡有問題嗎? thanks.
还是环境和命令路径有问题。
你好,请问你解决了吗?我也遇到了相同的问题
请问,正确安装pip以及Django模块之后(pip list可以查看目录),按照教程配置了Django的系统环境,django-admin startproject mysite(能创建相应文件夹),可是接下来的代码就全都“不是内部或外部命令“,这个是因为python没有配置好的原因吗?
请问创建Django项目后报错Error creating Django application: Error on python side. Exit code: 1, err: CommandError: 'Project0' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.,换了好多项目名称都不可以,是什么问题呢
the name of an existing Python module and cannot be used as a project name. Please try another name. 可以翻译一下,冲突了。
终于找到一个讲解详细,且版本够新的Django 教程,感谢博主
有没有vscode建项目的版本?
vscode+anaconda可以用来django开发吗?pycharm太大了
Vscode完全可以胜任,但一句没有Pycharm方便就足以说明问题。 annaconda是数据分析和机器学习用的Python解释器,做django开发的话,太臃肿,并且和Pycharm不是一回事。 Pycharm大是大,但现在开发机器性能和内存都不错,那点启动时间和内存消耗,不至于。
用了两天的时间,终于把基础操作和虚拟环境这类东西整明白了。感觉好爽
千万别去搞什么虚拟环境 浪费时间 出了问题
不要因噎废食哦
请问从命令行运行`python manage.py runserver`,确定是在根目录下,运行后没有反应,这是什么情况呢?
信息太少,无法回答,sorry
最后 点击create后一直卡在这样一个对话框这里:installing Django downloading https://files.pythonhosted.org/packages/
检查内容填写和选择框。检查pycharm的设置。检查网络链接。
我的也这样,你最后咋解决的
你的可能是因为Python下载源的问题卡住,换成豆瓣的源应该就可以了
最好的django中文教程,寻找了很久
创建虚拟环境并安装django的时候一直不成功,总是超时报错唉:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
检查网络。这个不是Django的锅。
真的太棒了,认真学习中
参考:https://www.cnblogs.com/wcwnina/p/9136398.html
写的很棒,正在努力学习中。要是侧边目录固定就好了,浏览起来会变得很方便。
我的点击运行后报错的,有时候直接报python 已停止工作。我的urls.py和你的内容不知道一不一样,我的只有 """mysite URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.10/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ]
不过我点击了mysite旁边的绿色箭头,可以直接启动服务器,也能成功好像.
我输入“pip install django-1.11.6”,好像不是“=”,我输入等于就不行。 错误位于第一大标题下的第1小标题。 新手,错了勿怪
不是‘-’
已经修改过来,谢谢指出!
123
从入门到真正入门,谢谢刘哥
千万不要放弃!哈哈!