它是当前Python世界里最负盛名且最成熟的网络框架。最初用来制做在线新闻的Web站点,目前已发展为应用最普遍的Python网络框架。Django的各模块之间结合得比较紧密,因此在功能强大的同时又是一个相对封闭的系统,可是其健全的在线文档及开发社区,使开发者在遇到问题时能找到解决方法。html
相对于Python的其余Web框架,Django的功能是最完整的,Django定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着Django模块之间紧密耦合,开发者须要学习Django本身定义的这一整套技术。Django的主要特色以下。python
Django的组成结构程序员
Django是遵循MVC架构的Web开发框架,其主要由如下几部分组成。web
Tornado是使用Python编写的一个强大的可扩展的Web服务器。它在处理高网络流量时表现得足够强健,却在建立和编写时有着足够的轻量级,并可以被用在大量的应用和工具中。Tornado做为FriendFeed网站的基础框架,于2009年9月10日发布,目前已经得到了不少社区的支持,而且在一系列不一样的场合中获得应用。除FriendFeed和Facebook外,还有不少公司在生产上转向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk及MyYearbook等。正则表达式
相对于其余Python网络框架,Tornado有以下特色。数据库
Flask是Python Web框架族里比较年轻的一个,于2010年出现,这使得它吸取了其余框架的优势,而且把本身的主要领域定义在了微小项目上。同时,它是可扩展的,Flask让开发者本身选择用什么数据库插件存储他们的数据。不少功能简单但性能卓越的网站就是基于Flask框架而搭建的,好比http://httpbin.org/就是一个功能简单但性能强大的HTTP测试项目。Flask是一个面向简单需求和小型应用的微框架。django
相对于其余Python语言的Web框架而言,Flask的特色能够归结以下。编程
网络程序调试是在将编制好的网站投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。有经验的开发者都知道,这是保证网站系统可以正式应用的必要步骤。
Flask 自带的开发服务器使开发者在调试程序时无须再安装其余任何网络服务器,好比Tomcat、JBoss、Apache等。Flask默认处于调试状态,使得运行中的任何错误会同时向两个目标发送信息:一个是Python Console,即启动Python程序的控制台;另外一个是HTTP客户端,即Flask开发服务器将调试信息传递给了客户端。浏览器
单元测试是对最小软件开发单元的测试,其重点测试程序的内部结构,主要采用白盒测试方法,由开发人员负责。单元测试的主要目标是保证函数在给定的输入状态下,可以获得预想的输出,在不符合要求时可以提醒开发人员进行检查。
Flask提供了一个与Python自带的单元测试框架unitest无缝衔接的测试接口,即Flask对象的test_client()函数。经过test_client()函数,测试程序能够模拟进行HTTP访问的客户端来调用Flask路由处理函数,而且获取函数的输出来进行自定义的验证。缓存
将HTML页面与后台应用程序联系起来一直是网站程序框架的一个重要目标。Flask经过使用Jinja2模板技术解决了这个问题。Jinja2是一个很是灵活的HTML模板技术,它是从Django模板发展而来的,可是比Django模板使用起来更加自由且更加高效。Jinja2模板使用配制的语义系统,提供灵活的模板继承技术,自动抗击XSS跨站攻击而且易于调试。
WSGI(Web Server Gateway Interface)具备很强的伸缩性且能运行于多线程或多进程环境下,由于Python线程全局锁的存在,使得WSGI的这个特性相当重要。WSGI已是Python界的一个主要标准,各类大型网路服务器对其都有良好的支持。WSGI位于Web应用程序与Web服务器之间,与WSGI彻底兼容使得Flask可以配置到各类大型网络服务器中。
Flask是彻底基于Unicode的。这对制做非纯ASCII字符集的网站来讲很是方便。HTTP自己是基于字节的,也就是说任何编码格式均可以在HTTP中传输。可是,HTTP要求在HTTP Head中显式地声明在本次传输中所应用的编码格式。在默认状况下,Flask会自动添加一个UTF-8编码格式的HTTP Head,使程序员无须担忧编码的问题。
Django version | Python versions |
---|---|
1.8 | 2.7, 3.2 (until the end of 2016), 3.3, 3.4, 3.5 |
1.9, 1.10 | 2.7, 3.4, 3.5 |
1.11 | 2.7, 3.4, 3.5, 3.6 |
2.0 | 3.4, 3.5, 3.6 |
2.1 | 3.5, 3.6, 3.7 |
Python环境与Django版本存在对应关系,注意由于版本不对应产生的一些错误..........
命令行直接下载 pip3 install django==1.11.11 pycharm下载 File-->Settings-->Project-->Project Interprter--> 验证是否下载成功 django-admin 建立django项目的方式: 方式1(命令行建立): 建立django项目 django-admin startproject 项目名 建立app应用 python3 manage.py startapp app01 启动django项目 python3 manage.py runserver ps:用命令行建立django默认不会自动建立templates文件夹,须要你手动本身建立(注意改文件夹路径是否被添加配置文件中) 方式2(pycharm建立) File >>> new project 选择第二个django 须要注意名字不能有中文,选择本地的解释器,勾选后台管理 建立app pycharm命令行建立 python3 manage.py startapp app01 启动django项目 Tools下面run manage task功能栏启动点小绿色箭头 强调: 1.用django必定要保证只有一个在运行状态 切记切记!!!!!!! 2.必定记得清浏览器的缓存
应用名
migrations 数据库迁移记录相关数据
admin.py django后台管理相关
models.py 模型表相关
views.py 视图函数相关
项目名
settings.py 配置文件
urls.py 路由与视图函数的映射关系
templates
项目用到的全部的html文件
manage.py
django入口文件