Flask 学习(一)概述及安装
Flask 概述及安装
Flask 简介
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。
官方网址 :http://flask.pocoo.org/
了解 Flask:首先,Flask 是Python 的一个Web 应用框架;其次,它是“微型”的 。
比起同类现有的web框架(如:Django),Flask 并不包含数据库抽象层,表单验证等。Flask 旨在保持代码简洁且易于扩展(Flask源码十分Pythonic)。
Flask支持扩展:扩展能够添加功能到你的应用,像是 Flask 本身实现的一样。众多的扩展提供了数据库集成,表单验证,上传处理,多种开放的认证技术等功能。
Flask 可能是“微”型的,但是已经能够在各种各样的需求中生产使用。
The "micro" in microframework means Flask aims to keep the core simple but extensible.
前期基础
学习 Flask 前期,你所需要具备的技术:Python 语言基础;前端基础(HTML、CSS、JS、前端框架等);HTTP协议;MVC框架基础(建议)
上述所列出的技术,除Python语言本身,其实均是WEB开发者所需要了解的技术:
前端相关不需了解很深入,但HTML标签、CSS 及 JS基础语法等 基本了解还是必须的;
HTTP 协议对于web开发者是必须的,具体看这篇博文即可:http://blog.csdn.net/gueter/article/details/1524447 ;
至于 MVC,其实 Flask 的目标用户并不是那种试图构建大型MVC应用的人,但了解 Model、View 可以更好理解 Flask,而且 Flask 可以扩展啊 ^_^ 。
Flask 安装
已安装 Python, pip install Flask cmd 下安装即可,需要离线安装的可 http://pan.baidu.com/s/1o6oUu2u
安装完成, pip list aaarticlea/png;base64,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" alt="" /> 安装 Flask 需要,jinjia2 和 werkzeug
Flask "Hello World" 示例
from flask import Flask
app = Flask(__name__) @app.route('/')
def hello():
return 'Hello World!' if __name__ == '__main__':
app.run()
示例代码如上 ,运行后,会在 localhost 5000 (即 http://127.0.0.0:5000 )端口。如下:
aaarticlea/png;base64,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" alt="" />
代码的具体说明详见后续的 Flask 学习章节。
Flask 学习(一)概述及安装的更多相关文章
- flask学习笔记(1)-虚拟环境安装
Mac(类Linux): pip install virtualenv mkdir testvirtualenv cd testvirtualenv virtualenv flask-env#创建虚拟 ...
- C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...
- Flask 学习目录
Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 ...
- Python Flask学习笔记之Hello World
Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...
- Flask 学习篇二:学习Flask过程中的记录
Flask学习笔记: GitHub上面的Flask实践项目 https://github.com/SilentCC/FlaskWeb 1.Application and Request Context ...
- InfluxDB学习之InfluxDB的安装和简介
最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:Infl ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
注册中心 可选方案:zookeeper.Redis 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相 ...
- OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务
OpenVAS漏洞扫描基础教程之OpenVAS概述及安装及配置OpenVAS服务 1. OpenVAS基础知识 OpenVAS(Open Vulnerability Assessment Sys ...
随机推荐
- logstash通过redis收集日志
(1)部署redis 1丶安装redis yum install epel-release -y yum install redis -y 2丶修改配置文件 #vim /etc/redis.conf ...
- email 校验
email 校验: javascript: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/ java: ^([a- ...
- java总结(方法与对象)
包 1.用于管理类 2.包名采用公司的域名倒序+项目名+模块名 3.包的引入 类 1.main方法用static 它调用的方法也要static 2.程序要运行必须要main方法 3.类是一种引用数据类 ...
- 【C#】线程问题
多线程编程对很多程序员来说并不容易,在启动访问相同数据的多个线程时,会间歇性地遇到难以发现的问题.如果使用任务.并行LINQ或Parallel类,也会遇到这些问题.为了避免这一系列问题,开发程序中必须 ...
- EOJ 3246 实验室传染病
线段树,暴力. 先处理出每个点直接能感染到的最左边的和最右边的. 之后每次扩展,看向左能到达的那些点中,最左以及最右能到哪些点,更新. 看向右能到达的那些点中,最左以及最右能到哪些点,更新. 最左最右 ...
- 无框架完整搭建安卓app及其服务端(一)
技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求 ...
- MYSQL注入天书之前言
写在前面的一些内容 请允许我叨叨一顿: 最初看到sqli-labs也是好几年之前了,那时候玩了前面的几个关卡,就没有继续下去了.最近因某个需求想起了sqli-labs,所以翻出来玩了下.从每一关卡的娱 ...
- CentOS7 安装Python3.6.4
1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...
- maven-surefire-plugin插件
https://sq.163yun.com/blog/article/173632756223238144 目前很多项目组的测试代码工程都是采用MAVEN+TESTNG的方式构造的. 因此测试代码pr ...
- PHP 笔记——String 字符串
1. 定义 单引号括起来的字符串被原样输出. 双引号字符串中的变量被PHP解析为变量值. 2. 获取字符串长度 strlen(string $string): int 在utf-8下,汉字占3个字符, ...