目录

  • flask是什么
  • 常用的扩展包
  • 安装
  • pycharm配置虚拟环境
  • requirements文件
  • 第一个flask应用
  • request对象的属性和方法
  • 视图中的响应
  • 案例练习

flask是什么

使用Python语言开发的,基于werkzeug的轻量级web框架,可提高web应用的开发效率。
flask可以说是一个内核,一些其他的功能都要用到第三方扩展。
核心模块:
路由模块werkzeug
模板引擎jinja2

Flask官网

常用的扩展包

实现一些功能,需要使用的扩展包。
pip install flask-migrate -i https://pypi.tuna.tsinghua.edu.cn/simple
 
flask-sqlalchemy 操作数据库
flask-migrate 迁移数据库
flask-mail 发邮件
flask-wtf 表单
flask-login 用户认证
flask-restful 开发restful API
flask-admin 管理接口

官方扩展

Flask 小而灵活;Django大而全,很多内建的配置。

安装

使用虚拟环境方式,可以避免对全局python环境的污染,避免版本冲突。只在虚拟环境中安装相应的包。

  1. linux下安装python虚拟环境包
    可以使用venv创建虚拟环境,如下:
#安装包,失败多试几次
sudo apt-get install python3-venv
#创建虚拟环境
python3 -m venv flask_app
#激活虚拟环境
source bin/activate
#取消激活
bin/deactivate
  1. 激活虚拟环境后,为其安装Flask
pip3 install flask==1.1.2

pycharm配置虚拟环境

在pycharm中创建一个项目(可以直接创建虚拟环境),然后settings–project—python interpreter—设置>添加本地,将创建的虚拟环境加入到项目。
 
 
vscode 切换 自己创建的虚拟环境:

  1. 点击左下角的select python interpreter 或者Ctrl + Shift + p(命令面板),输入python,选择select interpreter。

  2. 选择对应的环境或者将自己的虚拟环境路径输入
    注意输入路径时,要写到Scripts\python.exe

  3. 后续包的使用及安装,都会在使用的环境当中。

  4. linux下其他方式的参考:

#1. 创建虚拟环境
python3 -m venv lauf
#2. 将虚拟环境移动到指定目录
mv lauf ~/.virtualenvs
#3. 配置vscode
#打开vscode --file--preferences--settings--搜索python venv ,如下配置,然后重启

requirements文件

记录项目中所有的依赖及对应的版本,便于在服务器部署。

#导出
sudo pip3 freeze > requirements.txt#递归地安装,即批量安装
sudo pip3 install -r requirements.txt

第一个flask应用

所有的项目架构自己搭建

from flask import Flask  #创建应用
from flask import render_template #渲染模板
from flask import request #请求对象,直接使用
from flask import Response #响应字符串
from flask import make_response,jsonify
from flask import send_file #响应静态文件
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate#创建应用
app = Flask(__name__) #__name__标识使用的资源@app.route("/", methods=['GET','POST'])
@app.route("/index", methods=['GET'])
@app.route("/lauf") # 从根开始
def index(): #没有默认的参数#1.return string or json serializer str#return Response("第一个flask应用", content_type='text/plain', status=200)#注意返回中文字符串时,不能设置content_type#return Response(json.dumps({}),content_type='application/json', status=200, headers={"token":"laufing"})#content_type, 内容类型 text/plain;text/html;text/css;text/javascript;application/json;application/xml;#headers 添加响应头#2.return template,直接在templates目录下找,且必须是template + sreturn render_template("index.html", **{"name":"laufing", "age":23})#在模板中直接使用{{name}}#return render_template("users/login.html") 也必须在templates目录下找#3. 返回静态文件,任意目录下都可以  不用/static#return send_file('static/images/2.jpg')if __name__ == "__main__":#测试运行app.run(host='localhost', port=5000, debug=True)

配置的路由依次匹配顺序:
/lauf
/index
/

自定义的项目结构,如下:

目录结构自己搭建,flask在渲染模板时,去templates下面找页面,去static下找静态资源。

request对象的属性和方法

只需导入request,然后在视图函数中直接使用

from flask import Flask, render_template, request
app = Flask(__name__)@app.route("/", methods=['GET', 'POST'])
def index():print(request)return '查看request对象'

request.method; 请求方法
request.path;请求的路由部分
request.query_string; 查询字符串(字节串)
request.headers; 请求头信息
request.remote_addr;客户端ip
request.environ; 很多底层的信息

Flask
request.args; get请求的参数,不可变的类字典对象
request.form;post请求的参数

Django
request.GET
request.POST QueryDict 类字典

drf
request.data post参数
request.query_params get参数

视图中的响应

#只能实例化一个响应
#返回字符串时
res =  Response('flask app', status=200)
res1 = Response(json.dumps({"code111":"laufing"}), content_type='application/json',status=200)
#设置响应头
res1.headers["token"] = "laufing"
# 跨域, 待总结
res1.headers['Access-Control-Allow-Origin'] = "*"#返回json
res2 = make_response(jsonify({"code":200, "msg":"jsonify"}))#发送静态文件时,不用/static
return send_file("static/images/2.jpg")#响应页面时,直接在templates目录下找,而templates目录需自己在/ 下创建
return render_template("index.html")
return render_template("users/login.html")#响应页面,并传入数据
return render_template('index.html',  **{"name":"laufing", "age":23})
#在页面中,直接使用{{ name }}

案例练习

使用flask创建一个应用,并实现如下效果:
路由/register
get /register 返回页面
post /register 后台仅仅接收参数,并返回响应

flask框架----介绍相关推荐

  1. python中Flask框架介绍

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都 ...

  2. Flask框架-介绍

    Flask简介: Flask诞生于2010年,是用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架. Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flas ...

  3. Flask框架介绍与概述

    1. 什么是Flask 1) Flask 介绍 Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI 服务的一个微型框架 WSGI :Web Server Gat ...

  4. python写一个app接收摄像头传输的视频_使用Python的Flask框架实现视频的流媒体传输...

    Flask 是一个 Python 实现的 Web 开发微框架.这篇文章是一个讲述如何用它实现传送视频数据流的详细教程. 我敢肯定,现在你已经知道我在O'Reilly Media上发布了有关Flask的 ...

  5. 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Flask框架-317人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和Dj ...

  6. flask框架和配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录​​​​​​ flask框架介绍 flsak框架的安装 实现Flask基本操作 Flask的配置​​​ flask框架介绍 F ...

  7. 我爱Flask框架之Flask简介与URL和视图介绍

    一:虚拟环境介绍 黄色部分重点注意 虚拟环境与全局环境: 我们通过pip安装了一个python库,可能在编辑器中不能使用(如:pycharm,vscode-)这是因为: 通过pip安装的库默认一般安装 ...

  8. python框架专栏-Flask框架篇①-基本介绍和安装

    (1)Flask简介. Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内 ...

  9. python django flask介绍_Python开发WEB框架Flask详细介绍

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

最新文章

  1. Java 实现 HTTP 请求的三种方式
  2. 文件服务器的配置与管理(2) 实现软RAID
  3. 前华为技术大牛告诉你:如何正确入门深度学习
  4. 实战Jquery(一)--username校验
  5. Atcoder Contest069F:Flag
  6. Linux软件安装为什么名字不一样
  7. 面试题 17.16. 按摩师
  8. VSCode每打开一次文件弹出一个git弹窗:-login -i rev-parse --show-toplevel
  9. 国内首批AI专业毕业生创办的澎思科技,已完成Pre-A轮融资
  10. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
  11. python调用cmd执行命令_详解python调用cmd命令三种方法
  12. 分层结构的生活例子_AI的分层强化学习与人脑神经机制的联系
  13. NSCT(Nonsubsampled Contourlet变换)
  14. Iostream通用输入/输出流类
  15. python 校验邮箱格式、手机号格式
  16. excel导出动态表头以及二级三级表头,还有数据库动态的数据来源
  17. 11个绝佳免费矢量素材下载网站,拿走不谢!
  18. 管理成长计划(二):定目标--战略制定承接
  19. Linux下dcm2niix使用
  20. python百度翻译api申请网页版_python3调用百度翻译api接口实现全过程

热门文章

  1. springboot私人牙医管理系统[保远程安装配置]
  2. 使用VBA汇总文件夹下所有Excel文件
  3. 物通博联“无人值守”污水站智能化远程管理平台
  4. confluent mysql_confluent中的connect
  5. 微软ChatGPT技术的底层支撑——GPU
  6. 线程基础,多线程架构,高并发,线程安全基础知识
  7. 一文了解提权:溢出提权和第三方组件提权
  8. 相忘于江湖,追逐于区块链
  9. matlab coff,matlab生成com组件时LINK : fatal error LNK1123: 转换到 COFF 期间失...
  10. Kotlin语言:Orient-Ui中时间轴的使用