Flask

Flask是一个轻量级的Python Web开发框架,基于Werkzeug和Jinja2。与Django不同,Flask采用内核+扩展的方式,允许开发者按需安装扩展。本文将介绍Flask的安装步骤,配置设置,以及设计模式中的单例模式。同时,探讨了Flask与Django对待功能的不同策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flask是个什么东西?

它是一个Python开发web(网页、站点)专用的一个框架。
所谓框架:就是方便我们去开发的,是一个工具。它帮助我们实现了一些开发中的基本功能。
既然是一个工具,它就不难。可以减轻我们开发中的工作量。
基于 Werkzeug工具箱
轻量级Web开发框架
内核 + 扩展
Flask两个核心组件
Werkzeug
Jinja2
Flask的强大之处在于其第三方的扩展比较多,你总能找到适合自己的扩展

Django跟Flask对待功能的区别?

Django:
不管你需不需要,它内部集成了很多功能。
CSRF\CORSheaders\分页\上传\数据库\Admin管理后台\ORM
我们在开发中,很多功能是闲置状态。
Flask:
你需要什么就安装什么
在Flask里面总能找到Django的替代品

Flask安装

1.创建空文件夹

2.pycharm打开文件夹

3.创建虚拟环境

4.激活虚拟环境
在这里插入图片描述
4.1 判断是否需要激活虚拟环境
在这里插入图片描述
4.2 激活命令
在这里插入图片描述
4.3 验证虚拟环境是否正确
在这里插入图片描述
如果django说明环境出现了问题
4.5 解决办法:重启虚拟环境
在这里插入图片描述

问题

问题1
在这里插入图片描述
解决办法:

执行命令 set-ExecutionPolicy RemoteSigned
在这里插入图片描述

安装flask

1.安装Flask的python库 版本:1.1.4

(venv) D:\Study\h220214_p7\www\day01> pip install MarkupSafe==2.0.1
(venv) D:\Study\h220214_p7\www\day01> pip install flask==1.1.4


(venv) D:\Study\h220214_p7\www\day01> pip install flask==1.1.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/  # 指定清华镜像源
(venv) D:\Study\h220214_p7\www\day01> pip install flask==1.1.4 -i http://pypi.douban.com/simple/ # 指定豆瓣源

# 其他的一些源
# 豆瓣(douban) http://pypi.douban.com/simple/ (推荐)
# 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
# 阿里云 http://mirrors.aliyun.com/pypi/simple/
# 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
# 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

1.在项目根目录下创建一个app.py文件
2.编写代码

# 1. 导包
from flask import Flask

# 2. 实例化  ctrl + p 查看参数提示
app = Flask("dsgasdgasdg")

# 4. 写视图函数
@app.route("/hello")  # 用装饰器的方法,把视图函数和路由地址形成一一对应关系
def hello():
    return "<h1>hello</h1>"

# 3. 运行
if __name__ == '__main__':
    app.run()

如何设置Flask的配置项

1.注意:

2.配置项的名字必须是大写字母+下划线的形式。小写字母不生效

设计模式

代码:

app.config["DEBUG"] = True # 设置配置项
app.config.get("NAME") # 获取配置项
app.config.get("AGE", 18) # 获取配置项并设置默认值

# 方法1:从对象中加载配置文件
# 定义配置类 config.py
class Config:
    # 写属性就可以了。但是要注意!!!
    # 属性必须全部大写,小写不生效
    NAME = "张三"

from config import Config  # 导入配置类
app.config.from_object(Config)


# 方法2:从配置文件中加载
# 创建config_file.py文件
CLASS = "h2202A"

app.config.from_pyfile("./config_file.py")


# 方法3:从环境变量中加载
# 需要自己设置环境变量
app.config.from_envvar("ccc")

单例模式

代码:

class Cat(object):
    cat = None

    def __new__(cls, *args, **kwargs):  # 实例化时的魔术方法
        if not cls.cat:
            cls.cat = super().__new__(cls)
            return cls.cat
        else:
            return cls.cat

cat1 = Cat()
cat2 = Cat()
print(id(cat1))
print(id(cat2))
作用:

1 控制资源的使用,通过线程同步来控制资源的并发访问;

2 控制实例产生的数量,达到节约资源的目的。

3作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信

单例模式

代码:

class FSK():
    def create(self, product_name):
        product = eval(product_name)()
        return product


class iPhone():
    def name(self):
        print("我是Iphone")


class iPod():
    def name(self):
        print("我是iPod")


if __name__ == '__main__':
    prod_name = input("请输入你要生产的产品:")
    prod = FSK().create(prod_name)
    prod.name()

路由

1.methods 指定当前路由允许的请求方式

2.end_point 路由别名

3.url_for() 此函数通过理由别名寻找路由

启动方式

1.app.run() 代码启动

2.flask run 命令行启动

3.通过PyCharm运行

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值