当前位置: 首页 > news >正文

[flask] flask的基本介绍、flask快速搭建项目并运行

笔记

Flask

Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,可以选择 MySQL,也可以用 NoSQL。

flask的 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。Itsdangrous(token加密模块),Click(终端命令管理工具),flask内核本身,这5个核心模块组成 Flask 框架。

官网: Welcome to Flask — Flask Documentation (2.0.x)

官方文档: https://dormousehole.readthedocs.io/en/latest/index.html

Flask常用第三方扩展包:
  • Flask-SQLAlchemy:操作数据库,ORM;
  • Flask-script:终端脚本工具,脚手架; ( 淘汰,官方内置脚手架:Click)
  • Flask-migrate:管理迁移数据库;
  • Flask-Session:Session存储方式指定;
  • Flask-Mail:邮件;
  • Flask-Login:认证用户状态;(django内置Auth模块,用于实现用户登录退出,)
  • Flask-OpenID:认证, OAuth;(三方授权,)
  • Flask-RESTful:开发REST API的工具;
  • Flask JSON-RPC: 开发json-rpc远程服务[过程]调用
  • Flask-Bable:提供国际化和本地化支持,翻译;
  • Flask-Moment:本地化日期和时间
  • Flask-Admin:简单而可扩展的管理接口的框架
  • Flask-Bootstrap:集成前端Twitter Bootstrap框架(前后端分离,)
  • Flask-WTF:表单生成模块;(前后端分离)
  • Flask-Marshmallow:序列化(类似djangorestframework的序列化器)
创建flask项目

安装flask

 pip install flask -i https://pypi.douban.com/simple

也可以在python解释器那里安装flask软件包

出现这个应该只是权限不够

pip install --user "name of pkg" 
加个权限应该就好了,不然就还是在解释器安装flask包

pip安装库出现 Could not install packages due to an OSError: [WinError 5] 拒绝访问_安装pgspecial库报错:oserror-CSDN博客

与django不同,flask不会提供任何的自动操作,所以需要手动创建项目目录,需要手动创建启动项目的管理文件,可以直接在目标文件夹下面创建一个py文件

# 导入Flask类
from flask import Flask"""
Flask类的实例化参数:
import_name      Flask程序所在的包(模块),传 __name__ 就可以其可以决定 Flask 在访问静态文件时查找的路径
static_path          静态文件存储访问路径(不推荐使用,使用 static_url_path 代替)
static_url_path    静态文件的url访问路径,可以不传,默认为:/ + static_folder
static_folder        静态文件存储的文件夹,可以不传,默认为 static
template_folder  模板文件存储的文件夹,可以不传,默认为 templates
"""
app = Flask(__name__)# 编写路由视图
# flask的路由是通过给视图添加装饰器的方式进行编写的。当然也可以分离到另一个文件中。
# flask的视图函数,flask中默认允许通过return返回html格式数据给客户端。
@app.route('/')
def index():# 返回值如果是字符串,被自动作为参数传递给response对象进行实例化返回客户端return "<h1>hello flask</h1>"# 指定服务器IP和端口
if __name__ == '__main__':# 运行flaskapp.run(host="0.0.0.0", port=5000, debug=True)

运行代码,出现下面的形式,就是ok了

这里有一个warning,是因为在开发环境中,Flask应用程序是使用内置的服务器(如SimpleServer或Lighttpd)运行的,而不是使用WSGI服务器。
具体如果想解决这个警告可以参考一键解决WARNING: This is a development server. Do not use it in a production deployment. Use a productio-CSDN博客

点击连接,会跳转到浏览器,出现下面的界面就是ok的了

相关文章:

  • 短视频矩阵系统--技术3年源头迭代
  • 归并排序的原理及其多种方法的实现
  • Rust 函数体内能定义数据类型或者做其他什么事情吗?
  • Rust 语言的 HashMap
  • 代码随想录算法训练营DAY7| C++哈希表Part.2|LeetCode:454.四数相加II、383.赎金信、15. 三数之和、18.四数之和
  • XSS学习(cookie远程登录演示)
  • AXI4-Stream Interconnect IP核(1)——原理
  • MySQL数据库 - 复杂查询(一)
  • 二叉树|701.二叉搜索树中的插入操作
  • Springboot项目之mybatis-plus多容器分布式部署id重复问题之源码解析
  • 【生成对抗网络GAN】一篇文章讲透~
  • 《无名之辈》天涯镖局攻略:高效拉镖窍门!
  • Codeup_1132:问题 A: 最长公共子序列
  • 大话设计模式之模板方法模式
  • 云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 345-反转字符串中的元音字母
  • HomeBrew常规使用教程
  • HTTP中的ETag在移动客户端的应用
  • JS笔记四:作用域、变量(函数)提升
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python爬虫--- 1.3 BS4库的解析器
  • Sass Day-01
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Vim Clutch | 面向脚踏板编程……
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 浅谈Golang中select的用法
  • 如何胜任知名企业的商业数据分析师?
  • 突破自己的技术思维
  • 线性表及其算法(java实现)
  • 栈实现走出迷宫(C++)
  • AI算硅基生命吗,为什么?
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 积累各种好的链接
  • 进程与线程(三)——进程/线程间通信
  • ​configparser --- 配置文件解析器​
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • ${ }的特别功能
  • (20050108)又读《平凡的世界》
  • (9)STL算法之逆转旋转
  • (javascript)再说document.body.scrollTop的使用问题
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (六)vue-router+UI组件库