Flask01 初识flask、创建flask应用、flask启动配置
1 什么是flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。
百度百科:点击前往
中文文档:点击前往
2 利用pip安装flask模块
2.1 前提
安装好python、配置好环境变量
2.2 查看python版本

2.3 查看已经安装好的模块

2.4 利用pip安装flash模块
注意:为了速度更快建议将pip的源换成豆瓣的
pip3 install -i https://pypi.doubanio.com/simple/ flask
3 创建Flask应用的步骤
3.1 创建一个后缀为 py 的文件

3.2 从flask模块中导入Flash类
from flask import Flask
3.3 利用Flask类创建一个Flask实例
app = Flask(__name__)
3.4 定义一个测试方法,用来项前端传送数据
def test():
return "Hello Fury"
3.5 指定路径和方法的匹配规则(有点类似java中springMVC的请求分发)
app.add_url_rule('/', view_func=test)
解释:根路径对应test方法(即:前端发送的请求路径是根路径时后台就执行test方法)
注意:后台向前端发送的数据一般都是字符串的
3.6 运行后台
app.run()
3.7 完整代码
from flask import Flask app = Flask(__name__) def test():
return "Hello Fury" app.add_url_rule('/', view_func=test) app.run()
myTest.py
3.8 利用python自带的IDLE打开myTest.py,然后运行

3.9 通过浏览器访问 http://localhost:5000/ 的效果如下

查看源代码为

注意:在源代码中没有发现任何html标签,由此说明后台传过来的都是字符串;如果想要出现html标签可以直接将html标签写到后台的字字符串中然后传过来

4 利用pyCharm(专业版)创建一个简单的flash应用
4.1 pyCharm(专业版)安装包:
链接:http://pan.baidu.com/s/1jI5lnYQ 密码:osl8
4.2 pyCharm(专业版)注册码教程
4.3 创建flash应用

创建成功后的效果

5 利用装饰器来匹配路径和执行方法
@app.route('/')
def test():
return "Hello Fury"
代码解释:浏览器发送的请求路径时根路径时就执行test方法(类似于java中springMVC中利用注解实现请求分发)
上面的代码时下面三行代码的进化版本
def test():
return "Hello Fury"
app.add_url_rule('/', view_func=test) 完整代码如下

6 app.route('路径') 剖析
6.1 装饰器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
6.2 flash对象的route方法的返回值
这个返回值时一个装饰器(即:app.route不是装饰器,app.route执行后的放回值是装饰器【app.route()是装饰器】)

7 app.run() 剖析
7.1 Flash对象的run方法有三个默认参数

注意:其实这三个默认参数是flash应用的配置项
7.1.1 host

用来指定监听的IP地址,如果是127.0.0.1表示只能本机访问,如果是0.0.0.0表示所有机器都能访问;默认是127.0.0.1
7.1.2 post

用来指定请求端口;默认值是5000
7.1.3 debug

用来指定是否开启调试模式;默认值是false
如果开启调试模式,pyCharm会在我们修改了代码后自动重新运行应用;如果出现错误会在客户端显示错误信息
8 app.config 剖析
Flash对象的config属性其实是一个字典(查看源码就能看出来)

8.1 利用字典的方法更新Flash对象的config属性

8.2 利用app.config对象提供的方法来修改config的value值

9 本博客知识点
from flask import Flask
Flask
app = Flask(__name__)
app.run(host=主机, port=端口, debug=True)
app.add_url_rule('规则', view_func=函数) app.config --> Config类的实例 --> dict子类 dict --> update [key]=value
Config --> from_pyfile from_object from_json app.route 它不是个装饰起 mydec = app.route('路径') @mydec
def func():
return 'This is a view' 作业练习:
1. 自己绑定一个函数到一个路径上(不能是根路径)
2. 开启debug模式
3. 用from_pyfile加载开启debug模式,并输出app.config
知识点
10 三少需要复习的知识点
sqlalchemy
python异常
json、ajax
python基础知识
2017年9月3日01:45:54
Flask01 初识flask、创建flask应用、flask启动配置的更多相关文章
- python+mysql+flask创建一个微博应用(持续更新)
微博应用的结构: 用户管理,包括登录管理,会话,用户角色,个人档案及用户头像. 数据库管理,包括数据库迁移处理. Web表单支持,包括字段检验和用于防止垃圾邮件的验证码功能. 大数据的分页功能. 全文 ...
- Python框架学习之用Flask创建一个简单项目
在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...
- flask再学习-重构!启动!
1.打造MVC框架: common/libs:放置一些功能公用的方法. common/models:放置ORM模型 config:配置文件属性 web/controllers:视图层,处理url和ap ...
- 创建第一个flask项目
安装flask模块 pip install flask或conda install flask 创建一个run.py文件,文件内容如下: from flask import Flask app = F ...
- 初识Flask框架,以及Flask中的模板语言jinjia2和Flask内置的Session
一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Fl ...
- Flask基础(03)-->创建第一个Flask程序
# 导入Flask from flask import Flask # 创建Flask的应用程序 # 参数__name__指的是Flask所对应的模块,其决定静态文件从哪个地方开始寻找 app = F ...
- 创建我的flask第一个应用(二)
继上一篇创建我的flask第一个应用(一),继续学习配置flask 在myproject未提供flask默认运行的主程序文件"wsgi.py"或"app.py" ...
- 创建我的flask第一个应用(一)
本地python版本 (venv) dongge@dongge-PC:/data/webroot$ python --version Python 3.6.5 创建flask命令 $mkdir myp ...
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- python 全栈开发,Day142(flask标准目录结构, flask使用SQLAlchemy,flask离线脚本,flask多app应用,flask-script,flask-migrate,pipreqs)
昨日内容回顾 1. 简述flask上下文管理 - threading.local - 偏函数 - 栈 2. 原生SQL和ORM有什么优缺点? 开发效率: ORM > 原生SQL 执行效率: 原生 ...
随机推荐
- hd acm1061
Problem Description Given a positive integer N, you should output the most right digit of N^N. Inp ...
- EntityFramework 学习 一 Change Tracking in Entity Framework
EntityFramework自动跟踪上下文中已经加载的实体,DbChangeTracker类给你关于当前实体的所有跟踪信息 注意,每个实体都要有EntityKey(主键)的属性,EntityFram ...
- UOJ71 【WC2015】k小割
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- openlayers 3加载GeoServer发布的wfs类型服务
转:https://blog.csdn.net/u013323965/article/details/52449502 问题产生: openlayer3加载WFS存在跨域问题,需要用json ...
- SpringBoot_异常_01_Caused by: java.lang.BootstrapMethodError: java.lang.NoSuchMethodError
一.异常信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gsonB ...
- python中的生成器(generator)总结
1.实现generator的两种方式 python中的generator保存的是算法,真正需要计算出值的时候才会去往下计算出值.它是一种惰性计算(lazy evaluation). 要创建一个gene ...
- Android简单数据存储SharedPreferences
SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和St ...
- 使用MDI窗体实现多窗口效果
本文章已收录于: C#MDI窗体实现多窗口效果 Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程 序设计语言,正在受到越来越多的编程人员的喜欢.在Visua ...
- gulp之压缩图片
//先全局安装gulp:npm install -g gulp //然后在项目根目录中安装gulp依赖:npm install --save-dev gulp //http://www.gulpjs. ...
- BZOJ5281:[Usaco2018 Open]Talent Show
我对二分的理解:https://www.cnblogs.com/AKMer/p/9737477.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...