Django框架简介及安装

1、经常使用的web框架

一、企业级开发框架——Django

它是当前Python世界里最负盛名且最成熟的网络框架。最初用来制做在线新闻的Web站点,目前已发展为应用最普遍的Python网络框架。Django的各模块之间结合得比较紧密,因此在功能强大的同时又是一个相对封闭的系统,可是其健全的在线文档及开发社区,使开发者在遇到问题时能找到解决方法。html

Django框架的特色

相对于Python的其余Web框架,Django的功能是最完整的,Django定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着Django模块之间紧密耦合,开发者须要学习Django本身定义的这一整套技术。Django的主要特色以下。python

  • 完善的文档:通过10多年的发展和完善,Django有普遍的应用和完善的在线文档,开发者遇到问题时能够搜索在线文档寻求解决方案。
  • 集成数据访问组件:Django的Model层自带数据库ORM组件,使开发者无须学习其余数据库访问技术(dbi、SQLAlchemy等)。
  • 强大的URL映射技术:Django使用正则表达式管理URL映射,所以给开发者带来了极高的灵活性。
  • 后台管理系统自动生成:开发者只需经过简单的几行配置和代码就能够实现完整的后台数据管理Web控制台。
  • 错误信息很是完整:在开发调试过程当中若是出现运行异常,则Django能够提供很是完整的错误信息帮助开发者定位问题,好比缺乏xxx组件的配置引用等,这样可使开发者立刻改正错误。

 Django的组成结构程序员

Django是遵循MVC架构的Web开发框架,其主要由如下几部分组成。web

  • 管理工具(Management):一套内置的建立站点、迁移数据、维护静态文件的命令工具。
  • 模型(Model):提供数据访问接口和模块,包括数据字段、元数据、数据关系等的定义及操做。
  • 视图(View):Django的视图层封装了HTTP Request和Response的一系列操做和数据流,其主要功能包括URL映射机制、绑定模板等。
  • 模板(Template):是一套Django本身的页面渲染模板语言,用若干内置的tags和filters定义页面的生成方式。
  • 表单(Form):经过内置的数据类型和控件生成HTML表单。
  • 管理站(Admin):经过声明须要管理的Model,快速生成后台数据管理网站。

二、高并发处理框架——Tornado

Tornado是使用Python编写的一个强大的可扩展的Web服务器。它在处理高网络流量时表现得足够强健,却在建立和编写时有着足够的轻量级,并可以被用在大量的应用和工具中。Tornado做为FriendFeed网站的基础框架,于2009年9月10日发布,目前已经得到了不少社区的支持,而且在一系列不一样的场合中获得应用。除FriendFeed和Facebook外,还有不少公司在生产上转向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk及MyYearbook等。正则表达式

相对于其余Python网络框架,Tornado有以下特色。数据库

  • 完备的Web框架:Tornado也提供了URL路由映射、Request上下文、基于模板的页面渲染技术等开发Web应用的必备工具。
  • 高效的网络库,性能与Twisted、Gevent等底层Python框架相媲美:提供了异步I/O支持、超时事件处理。这使得Tornado除了能够做为Web应用服务器框架,还可用来作爬虫应用、物联网关、游戏服务器等后台应用。
  • 提供高效HTTPClient:除了服务器端框架,Tornado还提供了基于异步框架的HTTP客户端。
  • 提供高效的内部HTTP服务器:虽然其余Python网络框架(Django、Flask)也提供了内部HTTP服务器,但它们的HTTP服务器因为性能缘由只能用于测试环境。而Tornado的HTTP服务器与Tornado异步调用紧密结合,能够直接用于生产环境。
  • 完备的WebSocket支持:WebSocket是HTML5的一种新标准,实现了浏览器与服务器之间的双向实时通讯。

三、支持快速建站的框架——Flask

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开发服务器将调试信息传递给了客户端。浏览器

  • 与Python单元测试功能无缝衔接

单元测试是对最小软件开发单元的测试,其重点测试程序的内部结构,主要采用白盒测试方法,由开发人员负责。单元测试的主要目标是保证函数在给定的输入状态下,可以获得预想的输出,在不符合要求时可以提醒开发人员进行检查。 
Flask提供了一个与Python自带的单元测试框架unitest无缝衔接的测试接口,即Flask对象的test_client()函数。经过test_client()函数,测试程序能够模拟进行HTTP访问的客户端来调用Flask路由处理函数,而且获取函数的输出来进行自定义的验证。缓存

  • 使用Jinja2模板

将HTML页面与后台应用程序联系起来一直是网站程序框架的一个重要目标。Flask经过使用Jinja2模板技术解决了这个问题。Jinja2是一个很是灵活的HTML模板技术,它是从Django模板发展而来的,可是比Django模板使用起来更加自由且更加高效。Jinja2模板使用配制的语义系统,提供灵活的模板继承技术,自动抗击XSS跨站攻击而且易于调试。

  • 彻底兼容WSGI 1.0标准

WSGI(Web Server Gateway Interface)具备很强的伸缩性且能运行于多线程或多进程环境下,由于Python线程全局锁的存在,使得WSGI的这个特性相当重要。WSGI已是Python界的一个主要标准,各类大型网路服务器对其都有良好的支持。WSGI位于Web应用程序与Web服务器之间,与WSGI彻底兼容使得Flask可以配置到各类大型网络服务器中。

  • 基于Unicode编码

Flask是彻底基于Unicode的。这对制做非纯ASCII字符集的网站来讲很是方便。HTTP自己是基于字节的,也就是说任何编码格式均可以在HTTP中传输。可是,HTTP要求在HTTP Head中显式地声明在本次传输中所应用的编码格式。在默认状况下,Flask会自动添加一个UTF-8编码格式的HTTP Head,使程序员无须担忧编码的问题。

2、Django版本

一、Django版本年份

二、Python环境与Django版本对应表:

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版本存在对应关系,注意由于版本不对应产生的一些错误..........

3、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.必定记得清浏览器的缓存                  

4、django各个文件的做用

应用名
    migrations 数据库迁移记录相关数据
    admin.py django后台管理相关
    models.py 模型表相关
    views.py 视图函数相关

项目名
    settings.py 配置文件
    urls.py    路由与视图函数的映射关系

templates
    项目用到的全部的html文件

manage.py 
    django入口文件
相关文章
相关标签/搜索