关于Python的安装,请参考站点中Python教程的相关部分,这里不再赘述。
建议安装最新版本的Python!
Django各版本对Python版本的依赖关系如下表所示:
Django本身的版本规划时间图如下所示:
从上表中可以看出Django的版本更新迭代非常快,大版本号几乎两年加一。实际上,对于非重度用户,Django的版本差别并没有你想象中那么大,完全不必为版本的问题头疼。
如果你是通过升级的方式安装Django,那么你需要先卸载旧的版本。
Django提供3种发行版本,推荐使用官方的稳定版本:
Django本质上是Python语言的一个类库,因此可以通过pip工具安装。这也是最简便、最好的安装方式。不建议通过下载安装包或者编译源码进行安装的方法,除非你的环境无法连接外部网络。
以windows系统中使用pip命令安装为例:
在Linux操作系统中,也是一样,使用pip工具包安装Django。
进入Python交互式环境(注意一定要进入刚才安装了Django的Python解释器),按下面所示查看安装版本:
或者使用pip list
命令,查看是否存在Django模块。
成功安装Django后,以windows为例,在Python解释器目录下的Scripts文件夹中可找到一个django-admin.exe
文件,这是Django的核心管理程序,最好将它加入操作系统的环境变量中,这样在以后的调用会比较方便。
如何进入环境变量设置界面,请参考Python教程中的相关部分。如下图所示,在Path变量中添加Scripts目录。
回到cmd界面,直接运行django-admin help
,如果能看到下面的内容表示环境变量设置成功。
实际上,对Windows操作系统环境变量path的编辑,只是为了在命令行下可以无需带路径,直接执行一些程序,而不会出现程序文件无法找到的错误。
这样就会在当前目录下创建一个叫做mysite
的Django项目。
可以看到Django自动帮我们创建了一个mysite
文件夹,这是项目的根目录。在mysite根目录中,又有一个mysite目录,这是整个项目的配置文件目录(一定不要和同名的根目录混淆),还有一个manage.py
文件,它是整个项目的管理脚本。
打开你的浏览器,在地址栏输入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专业版为例。(可以安装中文插件)
使用此项目新建环境
处选择Virtualenv(这可能需要你提前使用pip install virtualenv
命令安装虚拟工具virtualenv)。通常情况下,虚拟环境会以venv的名字,自动在工程目录下生成。
现有解释器
template
是目录的名字,可换成任何你喜欢的名字。这里我们不选择,因为可能出现os模块缺少的bug。
没什么问题了,就点击Create吧。
下面就是一段时间的等待,Pycharm会帮助我们自动创建虚拟环境,以及安装最新版本的Django。
创建完成之后,进入Pycharm的解释器设置菜单,可以看到当前Django版本是3.1版本。如果你要指定过去的版本,比如2.2、1.11等,那就不能这么操作了,需要在命令行下自己创建虚拟环境并安装django。或者在这里先删除Django,再安装你想要的指定版本。
看下我们当前的状态,注意venv虚拟环境目录。
但是在Pycharm的早期版本中(包括教程中使用的2020.1版本),依然使用的是
os.path
,如果你在创建项目的时候同时指定了template目录,那么可能在运行服务器的时候出现缺少os
模块的错误。此时,只需要在settings.py
文件顶部添加import os
即可。
点击绿色的三角,启动默认的开发服务器,如果看到欢迎界面,说明一切OK!
注意:第一次启动服务器后,Django会默认创建一个db.sqlite3
文件,这是SQLite3数据库。
如果没有特别说明,教程将在Pycharm中开发Django项目。
2019 年 4 月 23 日,我来更新一下回答吧。
请允许我慢慢道来。目录如下
Flask 怎么定位自己的?
将自己定位为微框架。啥叫微框架,就是毛坯房的意思。给你个毛胚房,你自己装修去。
Django 怎么定位标榜自己的?
定位不同,就会导致设计上和功能上的倾向性。
假如你和我一样是先用 Django 这种给你准备了大量方便工具的框架。当你切换到 Flask 的时候,明显会感觉到的问题是:
不但失去了铠甲,还多了很多根软肋。
Flask 只是一个微框架。要做你自己组装去。
当然,我并不是在否定 Flask, 功能少某种程度上不是框架的缺点,而是使用者的缺点。笑....
如果你是进阶的玩家,你可能更喜欢 DIY 一些
路由设计上,从使用者的角度来说,更喜欢 Flask 一些,因为可以随用随定义。
代码组织的好的话,两者差距不是很大。
假设我设计一个应用叫做 shamate, 这个应用可能要对接多方面接口:
使用 flask 的时候,一个这样的应用,文件结构应该是这样的。
嗯,被老大 Flask 大牛带了一段时间之后,切分 django 是这么切分的
需要注意的是,Django 的在 Models 里面设置的时候务必显式写上 table 名
Django 模块如果涉及到业务的 Model, 一般很难通用,但如果要写通用的 Tag 系统 Attachment 系统,则,一般性能可能不太跟得上。如果不在意性能的话,建议 Folk 一份开源库,方便后期修改。
参考上面的结构,你应该能看出来,配置其实相差不是很大。主要区分
Django 是看了文档就能撸一个不错的项目出来。在不断学习的过程中,参考社区最佳实践。慢慢的撸一套自己的标准。
Flask 则是...... 需要更多的参考社区最佳实践。
扩展都挺多的。但建议涉及到业务逻辑的扩展,直接 cv 到项目中。这样方便后期定制。
Django 社区里面东西满多的, 举个例子, 我的文章里介绍过
这个工具用起来有多舒服呢?
这方面的话, 推荐两本书, 他们推荐的第三方库都是不错的.
至于 Flask 则推荐官方的链接
包含了社区质量相对高的包.
实际上不然,我接触的 Flask 项目都写成了自己的一套标准。
最后你发现你学的东西一点都没比 Django 少到哪里去。
理由是,通过 Django 可以以最小成本的了解 Web 开发的点点滴滴,然后看工作项目是啥就认真研究啥。
之前觉得Django写起来很快的, 但被TL带了一段时间之后, 发现TL也能把flask app写的很快, 这还是取决于使用者的.
当然,如果有兴趣的话,可以通过我在专栏写的 Django 的文章来做个实战项目了解 Django 开发的点点滴滴
django框架主要用来做什么 django框架是来做什么的?
Django是一个基于Python的Web应用框架。主要是用来快速搭建高性能网站,网站CMS内容管理系统板块建设等。Django最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。
自带管理后台,只需几行简单代码的设置,就可以让目标网站拥有一个强大的管理后台,轻松对内容进行增加、删除、修改与查找,并且能很方便地定制搜索、过滤等操作。
灵活的路由系统,可以定义优雅的访问地址,按需定义,毫无障碍。
强大的数据库 ORM,拥有强大的数据库操作接口(QuerySet API),可以轻松执行原生 SQL。
易用的模板系统,自带强大、易扩展的模板系统。
国际化支持,支持多语言应用,允许定义翻译的文字,轻松翻译成不同国家/地区的语言。
django框架主要是用来搭建网站,和做网站内容建设板块。