Flask框架入门
Flask-基本入门
简介
flask被称为微型框架,只提供了一个强健的核心,其他功能全部通过扩展库来实现;也就是说可以根据项目需要量身打造。他适合入门学习以及高手研究。
组成:WSGI、模板引擎(Jinja2)
WEB工作原理
B/S和C/S架构
B/S架构工作原理
客户端(浏览器) <=> WEB服务器(nginx) <=> WSGI(uWSGI) <=> Python(flask) <=> 数据库(MySQL)
说明:flask框架自带了一个测试服务器,没有考虑性能部署。
配置虚拟环境
安装virtualenv:
pip3 install virtualenv创建虚拟环境:
virtualenv venv启动虚拟环境:
source venv/bin/activate退出虚拟环境:
deactivate
安装virtualenvwrapper:
安装pip:
sudo apt-get install python-pip安装virtualenvwrapper:
pip install virtualenvwrapper配置:
常见专门用于存放虚拟环境的目录:
~/.virtualenvs在文件
~/.bashrc末尾添加如下内容:
export WORKON_HOME=$HOME/.virtualenvs
source $HOME/.local/bin/virtualenvwrapper.sh
alias mkvirtualenv='mkvirtualenv -p /usr/bin/python'
alias mkvirtualenv3='mkvirtualenv -p /usr/bin/python3'重新加载:source ~/.bashrc
查看虚拟环境
lsvirtualenv 或 workon
创建虚拟环境
python2:
mkvirtualenv 虚拟环境名python3:
mkvirtualenv3 虚拟环境名
使用虚拟环境:
workon 虚拟环境名
退出虚拟环境
deactivate
删除虚拟环境
rmvirtualenv 虚拟环境名
安装flask
创建虚拟环境:
mkvirtualenv3 flask安装flask:
pip install flask
使用测试
代码:见《manage.py》
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello world!</h1>' if __name__ == '__main__':
app.run()
启动:
python manage.py runserver测试:浏览器输入
127.0.0.1:5000启动参数
参数 说明 debug 是否开启调试模式,默认为False,开启后代码修改会自动加载 threaded 是否开启多线程 port 指定端口 指定主机,设置为'0.0.0.0'可以通过IP进行访问 app.run(debug=True, threaded=True, port=5050, host='0.0.0.0')
请求与响应
变量或对象
名称 上下文 说明 current_app 程序上下文 当前运行的应用实例 g 程序上下文 全局对象,处理请求的临时数据 request 请求上下文 请求对象,包含了客户端所有的HTTP请求信息 session 请求上下文 用户会话,用于保存需要'记住'的信息 请求钩子函数
函数 说明 before_first_request 第一次请求之前 before_request 每次请求之前 after_request 每次请求之后,前提是没有异常 teardown_request 每次请求之后,无论是否有异常 所谓的钩子函数,就是框架给用户预留的后门
视图函数
无参路由
@app.route('/test/')
def test():
return 'for test yyy'带参路由
见代码
说明
路由最后的'/'加上后,在测试时(浏览器中)加不加都可以
若需要参数,参数需要写在<>中,对应视图函数的参数要与路由参数一致
若需要指定参数类型,如:int/float/path等,应该写在参数名之前,使用':'与参数名分割
若不指定参数类,默认为string,path其实也是字符串,只不过'/'不再是分隔符
请求(request)
客户端的所有的请求信息都放在了request对象中
常用:url、method、args、headers等
响应(resposne)
直接返回一个字符串即可,默认状态码为200,表示成功
返回一个元组,即在字符串后直接指定状态码
也可以先创建一个响应对象,然后返回该响应对象
重定向(redirect)
说明:当网站的URL更换时,有需要对老的地址进行支持
redirect:重定向函数
url_for:根据视图函数名构造路由地址,参数是视图函数名
终止(abort)
abort:向系统抛出一个异常,系统会捕获并作出统一处理
@app.errorhandler:定制错误显示
扩展:
MVC:就是为了解耦
M:model,模型,即数据模型
V:view,视图,负责显示逻辑
C:controller,控制器,负责业务逻辑处理
MTV:功能同MVC
M:model,模型,即数据模型
T:template:模板,负责显示逻辑
V:view function,视图函数,负责处理业务逻辑
Flask框架入门的更多相关文章
- Flask 框架入门
Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 安装 Flask 依赖两个外部库, We ...
- Flask框架入门(一)
Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...
- Python的Flask框架入门-Ubuntu
全文请见tuts code:An Introduction to Python's Flask Framework Flask是Python一个小而强大的web框架.学起来简单,用起来也容易,能够帮你 ...
- Python Flask框架入门
序言 Flask封装功能不及Django完善,性能不及Tornado,但是Flask的第三方开源组件比丰富. 如果你是一个追求极简风格的完美主义者,那么Flask适合你. 资料
- Flask框架从入门到实战
Flask简介: Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎.使用 BSD 授权. Flask也被称为 " ...
- Flask 入门一( flask 框架和 flask-script 库)
Flask 入门一( flask 框架 和 flask-script 库) 一.Flask框架: 1.简介 Flask是一个非常小的Python Web框架,被称为微型框架:只提供了一个稳健的核心,其 ...
- Python之Flask框架项目Demo入门
Python+Flask框架项目Demo入门 本例子用到了 Flask+蓝图+Flask-Login+SQLAlchemy+WTForms+PyMySQL相关架构 Flask Web框架介绍 Flas ...
- flask 框架快速入门
flask 框架快速入门 搭建一个简易flask项目 首先使用 Pycharm创建flask项目 运行flask项目 1.使用Pycharm搭建flask项目 (如果Pycharm新建项目中未出现该图 ...
- Python 什么是flask框架?快速入门
一:Python flask框架 前言 1.Python 面向对象的高级编程语言,以其语法简单.免费开源.免编译扩展性高,同时也可以嵌入到C/C++程序和丰富的第三方库,Python运用到大数据分析. ...
随机推荐
- MySQL 创建和删除数据表
创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name col ...
- C之数据类型
java的数据类型 byte 1个字节 boolean 1个字节 short 2个字节 char 2个字节 int 4个字节 float 4个字节 long 8个字节 double 8个字节 c语言的 ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_11-修改页面-前端-Api调用
修改数据 这是提交按钮的事件editSubmit 注意修改的方法是put方法.所以用requestPut 操作成功自动返回 测试 成功后自动跳转到列表页 修改后的数据
- 防止sshd服务被暴力破解
方法有很多种,这里介绍两种. (1).配置安全的shhd设置 不允许root用户直接登录到系统,添加一个普通用户,必要时再切换到root用户. 修改默认端口号. 不允许密码登录,只能通过密钥登录系统. ...
- Java NIO学习笔记 三 散点/收集 和频道转换
Java NIO散点/收集 Java NIO带有内置的分散/收集支持.散点/收集是读取和写入渠道过程中使用的概念. 从通道散射读取是将数据读入多个缓冲区的读取操作.因此,数据可以从通道“散布”到多个缓 ...
- Spark中的CombineKey()详解
CombineKey()是最常用的基于键进行聚合的函数,大多数基于键聚合的函数都是用它实现的.和aggregate()一样,CombineKey()可以让用户返回与输入数据的类型不同的返回值.要理解C ...
- JS创建类和对象,看完了,头就不大了
JavaScript 创建类/对象的几种方式 在JS中,创建对象(Create Object)并不完全是我们时常说的创建类对象,JS中的对象强调的是一种复合类型,JS中创建对象及对对象的访问是极其灵活 ...
- 为Django添加图片验证码
可直接复制到Django项目中使用 # author:sunshine from django.http import HttpResponse from PIL import Image, Imag ...
- 如何做一个项目v2.ppt
链接:https://pan.baidu.com/s/159GQsYK9BcQad3h1CyVUYg 提取码:ivcj 复制这段内容后打开百度网盘手机App,操作更方便哦
- 我是如何提高工作效率的-工具篇(一)-Clover
痛点: 还在为资源管理器窗口切来切去烦恼吗? 效果图: 实现工具:Clover 放个链接 链接:https://pan.baidu.com/s/1UiUQZtE99fMNDe1f2gOnlg 提取 ...