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 ...
随机推荐
- Mysql的MyISAM和InnoDB存储引擎的区别
从以下几个方面: 1.存储结构 每个MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型. .frm文件存储表定义. 数据文件的扩展名为.MYD (MYData). ...
- groupadd、groupmod、groupdel、gpasswd、newgrp
1.groupadd [选项] 参数 添加组 -g:指定组ID -r:添加系统组 2.groupmod 修改组属性 -g :修改组ID -n:修改组名 3.groupdel 删除组 4.gpasswd ...
- css 精灵图的使用
精灵图的使用 1.给一个容器定义一个大小(宽高) 2.引入背景图 3.定位到自己你想要的图片位置 例如: background-position: 0 0; background-position ...
- 03-Django基础概念和MVT架构
一.Django基础 掌握Django的 MVT 架构的使用 掌握Git管理源代码 主要内容 了解Django的 MVT 架构的使用流程 使用Django完成案例 : 书籍信息管理 MVC介绍 MVC ...
- Ionic2优于Ionic1的6个理由
经历了一个从0到有的app的开发,我已经很熟悉Ionic1了,在此期间我曾发现过Ionic1的一些bug,和一些不合理的地方(根基版本 不同,后续我会陆续发表这些文章),我甚至在此期间对Ionic1进 ...
- Redis对象——字符串
文章导航-readme 前言 上一篇文章Redis之对象篇--Redis对象系统简介简单介绍了Redis的对象系统.Redis使用对象来表示数据库中的键和值每个对象都由一个redisObjec ...
- 爬虫之beautifulsoup篇之一
一个网页的节点太多,一个个的用正则表达式去查找不方便且不灵活.BeautifulSoup将html文档转换成一个属性结构,每个节点都是python对象.这样我们就能针对每个结点进行操作.参考如下代码: ...
- POJ1017&&UVA311 Packets(中文题面版)
感谢有道翻译--- Description A工厂生产的产品是用相同高度h的方形包装,尺寸为1* 1,2 * 2,3 * 3,4 * 4,5 * 5,6 6.这些产品总是以与产品高度h相同,尺寸为66 ...
- SpringMVC快速入门记录(二)
一.数组参数绑定和List参数绑定 1.数组参数绑定 提交多个相同name的参数,保持name的名字和Controller方法参数的数组名称相同即可. 2.List参数绑定 List中存放对象,并将定 ...
- 代码审计-MetInfo CMS变量覆盖漏洞
0x01 代码分析 安装好后是这样的 漏洞文件地址\include\common.inc.php 首先是在这个文件发现存在变量覆盖的漏洞 foreach(array('_COOKIE', '_POST ...