首页 > 其他分享 >Flask开发实战-初识flask

Flask开发实战-初识flask

时间:2024-08-23 17:37:57浏览次数:13  
标签:__ run Flask app Django flask 初识

Flask开发实战-初识Flask

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

Flask与Django

Flask和Django都是Python Web开发框架,但它们各自有各自的特点和适用项目。以下是对它们的特点、区别和适用项目的详细描述: Flask的特点: 轻量级:Flask是一个轻量级的Web框架,它只提供了基本的框架结构和功能,没有内置的ORM、表单验证、用户认证等组件,因此更加灵活和易于扩展。 定制性强:由于Flask的灵活性,开发者可以自由选择和组合所需的组件,也可以方便地定制自己的组件,这使得开发过程更加具有创造性。 适合小型项目:由于Flask的轻量级和灵活性,它适合开发小型Web应用程序或微服务。对于需要快速开发原型或小型项目的场景,Flask是一个很好的选择。

Django的特点: ​ 功能强大:Django是一个功能强大的Python Web框架,提供了完整的ORM、表单验证、用户认证、URL路由等功能,可以快速开发复杂的应用程序。 ​ 结构化:Django采用MVT(Model-View-Template)架构模式,使得应用程序的结构更加清晰和易于维护。 ​ 安全性高:Django在默认情况下提供了很多安全措施,比如自动转义输出、防止跨站脚本攻击等,这使得使用Django开发的应用程序更加安全。 适合大型项目:由于Django的功能强大、结构化和安全性高,它适合开发大型、复杂的Web应用程序。对于需要长期维护和扩展的大型项目,Django是一个很好的选择。

适用项目: Flask适合小型项目或原型开发,而Django适合大型项目或企业级应用。在选择框架时,需要根据项目的需求和规模来决定。如果项目需要快速迭代或尝试新的技术,那么Flask可能更适合。如果项目需要长期维护和扩展,并且需要高度的功能和安全性,那么Django可能更适合。

环境准备

基于快速建站和轻量级的特点,我们选择flask作为开发框架,要想使用flask需要先准备一下环境:

操作系统:Windows11

集成开发环境:pycharm2022.3.1

开发语言:python3.8.10

 要使用flask作为开发框架我们需要先安装一下:

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

 验证安装是否成功

pip show flask

快速开始一个项目

首先使用pycharm创建一个项目,不会的可以自行百度一下,然后在项目中创建一个app.py文件

# !/usr/bin/env python
# -*- coding: UTF-8 –*-
__author__ = 'Mr.Li'
# 导入flask模块
from flask import Flask
# 初始化实例
app = Flask(__name__)
# 路由,当在页面访问ip:端口/index时,执行函数内的内容
@app.route('/index')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run()

以上几行代码就实现了一个后端接口功能,虽然它很简单,但确实很方便

我们从浏览器中访问:http://127.0.0.1:5000/index

扩展

在安装flask时,会默认安装一些其他依赖比如Jinja2、Werkzeug,其中Jinja2是渲染模板用的,而Werkzeug是flask的核心,用来做请求和响应对象以及其他Web相关的工具,我们本次实战不使用Jinja2渲染模板,所以这里不多做介绍,感兴趣的可以自行百度一下。

flask其实只具备:路由/视图/模板Jinja2/session/中间件等,其他功能都是第三方组件实现的,让我们来用Werkzeug实现一下请求功能

# !/usr/bin/env python
# -*- coding: UTF-8 –*-
__author__ = 'Mr.Li'

from werkzeug.serving import run_simple
def func(environ,start_response):
    print('请求来了')
    pass

if __name__ == '__main__':
    run_simple('127.0.0.1',5000,func)

在浏览器中直接访问http://127.0.0.1:5000/

 可以看出,请求到达了后端了,虽然有报错,目前还只是单纯用Werkzeug实现wsgi功能,我们在改造一下

# !/usr/bin/env python
# -*- coding: UTF-8 –*-
__author__ = 'Mr.Li'
# 导入werkzeug模块
from werkzeug.serving import run_simple
# 定义一个类
class Flask():
    # 类的回调函数
    def __call__(self,nviron,start_response):
        print('请求来了')
        pass
# 实例化自定义类
app = Flask()
if __name__ == '__main__':
    # 使用werkzeug执行自定义类
    run_simple('127.0.0.1',5000,app)

我们自定义了一个叫Flask的类(你也可以叫别的),然后给Flask类定义了一个回调函数(__call__),即Flask类的实例对象被当做函数时,被自动调用,目前看着已经有点眼熟了,我们再稍微修改一下

# !/usr/bin/env python
# -*- coding: UTF-8 –*-
__author__ = 'Mr.Li'
# 导入werkzeug模块
from werkzeug.serving import run_simple
# 定义一个类
class Flask():
    # 类的回调函数
    def __call__(self,nviron,start_response):
        print('请求来了')
        pass

    def run(self):
        run_simple('127.0.0.1', 5000, self)
# 实例化自定义类
app = Flask()
if __name__ == '__main__':
    # 使用werkzeug执行自定义类
    app.run()

 现在来看代码,是不是很眼熟,没错,真正的Flask其实就是这么实现的,基于我们快速开始一个flask项目的代码来说,flask用app.router()提供路由,后端的请求和响应其实都是Werkzeug来实现的,所有它可以这么少的代码就实现快速建站

  • flask框架是基于werkzeug的wsgi实现,flask本身没有wsgi

  • 用户请求一旦到达,就会调用app._call_方法

标签:__,run,Flask,app,Django,flask,初识
From: https://www.cnblogs.com/lirongyang/p/17941080

相关文章

  • Platform - AWS基础初识
    前言什么是云?借助云计算将基础设施视为视为软件并使用,具备可编程资源、动态伸缩能力、随用随付的优势。传统方式:通过公司网络访问和管理本地部署的服务器、存储、数据库、应用程序等软硬件资源云计算:通过互联网使用和管理云服务提供商的存储、服务器、数据库、应用程序等云......
  • 初识 Flutter
    一、Flutter简介Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言开发App,一套代码同时运行在iOS和Android平台。Flutter提供了丰富的组件、接口,开发者可以很快地为Flutter添加Native(即原生开发,指基于平台原生语言......
  • 基于Python flask的图书借阅管理系统的设计与实现
    基于PythonFlask的图书借阅管理系统旨在为图书馆或类似机构提供一个高效、便捷的管理平台,覆盖图书借阅的各个环节,帮助管理员和读者更好地管理和使用图书资源。该系统采用Python编程语言和Flask框架进行开发,结合了数据库管理、用户认证、数据可视化等技术,确保系统的功能完备和......
  • 初识方法
    1.方法是什么1.java方法是语句的合集,放在一起执行一个功能。2.方法包含于类或对象中3.方法在程序中被创建,在其他地方被引用2.方法的原则:原子性一个方法只能完成一个功能3.在main方法外计算1.先在main外面书写一个加法方法2.再在main里面直接输出加法方法总览:......
  • 初识JavaScript
    1.什么是JavaScriptJavaScript(JS)是⼀种具有函数优先的轻量级,解释型或即时编译型的编程语⾔。虽然它是作为开发Web⻚⾯的脚本语⾔⽽出名的,但是它也被⽤到了很多⾮浏览器环境中,例如Node.js、ApacheCouchDB和AdobeAcrobat。JavaScript是⼀种基于原型编程、多范式的......
  • python flask 定时器
    安装pipinstallflaskpipinstallflask_apscheduler-ihttps://pypi.tuna.tsinghua.edu.cn/simple/--trusted-hostpypi.tuna.tsinghua.edu.cn使用方法一:使用Config类配置时间规则fromflaskimportFlaskfromflask_apschedulerimportAPSchedulerclassC......
  • 基于python+flask框架的校园失物招领系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在繁忙的校园生活中,学生们因疏忽大意或急于赶时间而遗失物品的情况时有发生。传统的失物招领方式往往依赖于公告板、校园广播或口口相传,这......
  • 基于python+flask框架的培训机构信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育行业的蓬勃发展,培训机构作为教育体系中的重要组成部分,其规模与数量日益增加。然而,传统的人工管理模式已难以满足培训机构高效运营......
  • 基于python+flask框架的翼城县土特产合作社管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景翼城县,以其丰富的自然资源和独特的地理环境,孕育了众多优质的土特产品,成为地方经济发展的重要支柱。然而,传统土特产的生产与销售模式往往受......
  • 基于python+flask框架的通识课在线选课系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,教育领域正经历着深刻的变革,其中在线教育成为了一个重要的发展方向。通识教育作为高等教育体系中的重要组成部分......