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 执行效率: 原生 ...
随机推荐
- 3.08课·········switch case及if else嵌套(日期格式)
switch case switch (n) { : break; : break; . . . case n: break; } 1.switch case必须与break一同使用,每一个case后 ...
- UVALive - 6257 K - Chemist's vows 【DFS】【BFS】【DP】
题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- 【LeetCode】:二叉搜索树
相关概念: 一棵二叉搜索树(BST)是以一棵二叉树来组织的,可以用链表数据结构来表示,其中,每一个结点就是一个对象,一般地,包含数据内容key和指向孩子(也可能是父母)的指针属性.如果某个孩子结点不存 ...
- 【leetcode刷题笔记】Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- Redis高级进阶(二)
一.消息通知 在一些网站上,经常会有一些发布/订阅或者邮件订阅的功能,尤其一些博客上.其实这种问题很常见,当页面需要进行如发送邮件.复杂的计算时会阻塞页面的渲染.为了避免用户等待太久,应该使用其他进程 ...
- location记录<18.7.21>
// var index = location.href; // console.log(index) // // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. // v ...
- Render树、RenderObject与RenderLayer
Chapter: 呈现树的构建 1. 呈现树与CSS盒子模型千丝万缕的关系 2. 呈现树与DOM树的关系 3. 浏览器构建呈现树的流程 4. Firefox的规则树和样式上下文树 5. 规则树是如何解 ...
- Java -- 表达式类型的自动提升
1. 提升规则: a. 所有byte型,short型和char型将被提升到int型. b. 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型. 例1: short val = 5; ...
- 单机版 RedisUtils({基本操作封装工具类})【三】
<!--集成的RedisJAR--> <!--引入jedis需的jar包--> <dependency> <groupId>redis.clients& ...
- hadoop_异常_01_ Unable to determine address of the host-falling back to "localhost" address java.net.UnknownHostException: rayner
一.异常现象 安装好hadoop之后,执行格式化namenode命令时,抛出以下异常: // :: WARN net.DNS: Unable to determine local hostname - ...