Flask:项目的准备工作
1、创建虚拟环境
(1)打开Windows命令窗口,输入命令(先确保电脑上安装了Anaconda):
conda create -n FlaskPath python=3.5.2
FlaskPath为虚拟环境的名字,3.5.2是python的版本
(2)激活虚拟环境,命令:
activate FlaskPath
为什么使用虚拟环境?
在实际项目开发中,我们会根据自己的需求去下载各种各样的框架库,如Django、Flask、Scrapy等;但是每个项目使用的框架库不一样,或使用的框架版本不一样,这样我们就会根据自己的需求去不断的下载和卸载相应的库,直接对我们的python开发环境进行操作会造成很多不必要的麻烦,管理也相当混乱,因此就用到了虚拟环境来解决这样的问题。
虚拟环境是一个虚拟化的,从电脑独立开辟出来的环境。通俗来讲,虚拟环境就是借助虚拟机Docker来把一部分内容独立出来,我们把这个独立出来的东西称为“容器”,在这个容器中,我们只安装项目需要用到的依赖包,各个容器间互不影响,相互隔离。
2、安装Flask框架
在虚拟环境中输入命令:
pip install flask==1.1.1
这里的1.1.1指的是Flask的版本号,在执行上述命令的时候,我们安装了以下五个依赖包

3、Django、Flask和Tornado的比较
(1)Django的特点
优点:
- 功能完善,要素齐全,自带大量常用工具和框架,适合快速开发企业级网站;
 - 完善的文档,经过十多年的发展,Django有广泛的实践案例和完善的在线文档,开发者在遇到问题时可以搜索在线文档寻求解决方案;
 - 拥有强大的数据库访问组件,Django的Model层自带数据库ORM组件,使得开发者无需使用sql语句就可以对数据库进行操作;
 - 自带后台管理系统admin,只需要几行简单的配置和代码就可以实现一个完整的后台管理控制平台;
 - DeBug信息详尽,方便开发者快速的找到错误所在。
 
缺点:
- 大包大揽,对于一些轻量级的web应用不需要的功能在django中也包括了;
 - 过度封装,很多类和方法在django中都封装了,直接使用更为简单,但改动起来比较困难;
 - 性能劣势,与C、C++性能上相比,Django的性能偏低,当然这是python的锅,其它基于python的web框架在流量上来后也会棉铃同样的问题;
 - 模板问题,Django的模板实现了代码和样式的完全分离,不允许模板里出现python代码,灵活度对某些程序员来说可能不够。
 
分析:
Django提供的方便,也意味着Django内置的ORM与框架内的其他木块耦合程度高,应用程序必须使用Django内置的ORM,否则就不能使用框架内基于其ORM提供的种种便利;理论上可以切换掉其ORM,但这就相当于把装修好的房子拆除后重新装修,倒不如一开始就去毛坯房做全新的装修。Django的卖点是它超高的开发效率,其性能扩展性有限
(2)Flask的特点
- Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的python库;
 - 非常适合于开发小型网站,非常适合于开发web服务的API;
 - 开发大型网站无压力,但是代码架构需要自己设计,开发成本取决于开发者的能力和经验;
 - Django自带的或第三方的好评如潮的功能,在Flask总能找到与之类似的第三方库;
 - Flask与关系型数据库的配合使用不弱于Django,而其与nosql数据库的配合远远优于Django。
 
(3)Tornado的特点
优点:
轻量、异步非阻塞IO处理方式,出色的抗负载能力,协程带来优益的处理性能
缺点:
没有ORM,提供的支持和模板少,缺少后台支持,对于小型项目来说开发速度没有Django快
分析:
Tornado所谓的缺点是由它的设计理念所决定的,设计上就决定它是一个小而精的http服务器+轻量级web框架,高并发处理才是它真正擅长的
Flask:项目的准备工作的更多相关文章
- Flask:第一个Flask项目
		
在上一篇文章:Flask:项目的准备工作中,我写了flask项目的准备工作,不清楚创建flask项目需要做哪些准备的朋友可以点击链接看看 1.最简单的Flask项目 代码: from flask im ...
 - [转]基于Starling移动项目开发准备工作
		
最近自己趁业余时间做的flash小游戏已经开发得差不多了,准备再完善下ui及数值后,投放到国外flash游戏站.期间也萌生想法,想把游戏拓展到手机平台.这两天尝试了下,除去要接入ane接口的工作,小游 ...
 - flask 项目的开发经验总结
		
已经开发了几个flask项目, 是时候总结一下了, 这里涉及到项目源码的组织, 常用的包, 源码示例. =========================需要的 python 包有:========= ...
 - Python框架 Flask 项目实战教程
		
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
 - 通过VM虚拟机安装Ubuntu server部署flask项目
		
1. VM安装Ubuntu server 14.04,系统安装完成后,首先安装pip工具方便之后的包安装,此处需先使用 apt-get install update,apt-get install u ...
 - flask项目开发中,遇到http 413错误
		
在flask项目中,上传文件时后台报http 413 Request Entity Too Large 请求体太大错误! 解决的2种方法: 1.在flask配置中设置 MAX_CONTENT_LENG ...
 - flask项目部署到阿里云 ubuntu16.04
		
title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...
 - 部署Flask项目到腾讯云服务器CentOS7
		
部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...
 - pycharm创建Flask项目,jinja自动补全,flask智能提示
		
pycharm创建Flask项目,jinja自动补全,flask智能提示 之前一直都是用在idea里创建空项目然后导入,之后就没有各种的智能提示,在选择文类,选择模板之类的地方就会很麻烦. 步骤1:用 ...
 - flask 项目基本框架的搭建
		
综合案例:学生成绩管理项目搭建 一 新建项目目录students,并创建虚拟环境 mkvirtualenv students 二 安装开发中使用的依赖模块 pip install flask==0.1 ...
 
随机推荐
- 使用springboot最新版本mysql-Connector连接数据库时报错解决
			
在连接数据库时,使用了最新版本的mysql-Connector,即6.0以上版本 1.报错如下: Loading class `com.mysql.jdbc.Driver'. This is depr ...
 - centos7.x 部署主、从DNS服务器
			
1.准备 例:两台192.168.219.146(主), 192.168.219.147(从), 域名www.panyangduola.com 主.从DNS服务器均需要安装bind.bind-chro ...
 - 04、JDBC范例
			
范例:JDBC查询 package com.hsp; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...
 - 手把手教你安装Eclipse最新版本的详细教程 - 大佬的鸡肋,菜鸟的盛宴(非常详细,非常实用)
			
简介 首先声明此篇文章主要是针对测试菜鸟或者刚刚入门的小伙们或者童鞋们,大佬就没有必要往下看了. 写这篇文章的由来是因为后边要用这个工具,但是由于某些原因有部分小伙伴和童鞋们可能不会安装此工具,为了方 ...
 - python爬虫之基本类库
			
简单梳理一下爬虫原理: 1.发送请求 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应. 2.获取响应内容 如果服务器能正常响应(正常 ...
 - 阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布
			
导读:新版本主要有三大变化:同步了 OpenJDK 上游社区 jdk8u222-ga 的最新更新:带来了正式的 feature:G1ElasticHeap:发布了用户期待的 Windows 实验版本 ...
 - 破阵九解:Node和浏览器之事件循环/任务队列/异步顺序/数据结构
			
前言 本文内容比较长,请见谅.如有评议,还请评论区指点,谢谢大家! >> 目录 开门见山:Node和浏览器的异步执行顺序问题 两种环境下的宏任务和微任务(macrotask &&a ...
 - vue+element 实现商品sku效果
			
在网上搜索了很久,没有发现合适sku编辑的文章,只能自己写一个vue+element 的sku编辑功能.实现的效果如下图 除成本.售价.库存.货号这几个写死的属性外,可自行添加/删除商品属性,自行添加 ...
 - Linux power supply class(1)_软件架构及API汇整【转】
			
1. 前言 power supply class为编写供电设备(power supply,后面简称PSY)的驱动提供了统一的框架,功能包括: 1)抽象PSY设备的共性,向用户空间提供统一的API. 2 ...
 - unittest-A接口的返回结果作为B接口的入参(设置全局变量)
			
在A接口用例中设置全局变量: globals()["a"] = "用例A的返回结果" 在B接口用例中使用全局变量: b = globals()["a& ...