Python Flask框架(一)初识Flask

news2024/11/22 12:21:47

Flask是使用Python编写的Web微框架。Web框架可以使我们不用关心底层的请求响应处理,更方便高效的编写Web程序。Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface,web服务器网关接口)工具集,另一个是Jinja2模版引擎。

创建开发环境

1. 安装pipenv

pipenv是基于pip的python包管理工具,可以看作是pip的加强版。具体来说,它是pip、Pipfile和Virtualenv的结合体,它让包安装、包依赖管理和虚拟环境管理更加方便。

在Python中,虚拟环境就是隔离的Python解释器环境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境。这样做的好处是可以为每一个项目创建独立的Python解释器环境,因为不同的项目常常会依赖不同的版本的库或Python版本。使用虚拟环境可以保持全局Python解释器环境的干净,避免包和版本的混乱,并且可以方便的区分和记录每个项目的依赖,以便在新环境下复现依赖环境。

2. 创建虚拟环境

首先确保当前工作目录在所开发项目的根目录,然后使用pipenv install命令为当前项目创建虚拟环境。

默认情况下,Pipenv会统一管理所有虚拟环境。在Windows系统中,虚拟环境文件夹会在C:\Users\Administrator.virtualenvs\目录下创建,而Linux或MacOS会在~/.local/share/virtualenvs/目录下创建。如果想在项目内创建虚拟环境文件夹,可以设置环境变量PIPENV_VENV_IN_PROJECT,这时名为.venv的虚拟环境文件夹将在项目根目录被创建。

在创建虚拟环境时,如果项目根目录下没有Pipfile文件,pipenv install命令还会在项目文件夹根目录下创建Pipfile和Pipfile.lock文件,前者用来记录项目依赖包列表,而后者记录了固定版本的详细依赖包列表。当我们使用Pipenv安装\删除\更新依赖包时,Pipfile以及Pipfile.lock会自动更新。

3. 安装Flask

类似 pip 的 -i (–index-url)选项,可以使用 –pypi-mirror 临时设置镜像源地址
pipenv install --pypi-mirror https://pypi.doubanio.com/simple flask

4. 切换生产环境和开发环境

开发环境是指我们在本地编写或测试程序时的计算机环境,而生产环境与开发环境相对,它指的是网站部署上线供用户访问时的服务器环境。根据运行环境的不同,Flask程序、扩展以及其他程序会改变相应的行为和设置。为了区分程序运行环境,Flask提供了一个FLASK_ENV环境变量来设置环境,默认为production。

$ export FLASK_ENV=development
$ export FLASK_ENV=production

最小Flask程序

"""
app.py
"""

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
	return '<h1>Hello Flask!</h1>'

Flask构造函数,参数时模块或包的名称(app.py),该函数的返回是类的实例app。

编写Flask程序,我们要做的只是建立处理请求的函数,并为其定义对应的URL规则。只需为函数附加app.route()装饰器,并传入URL规则作为参数(这里的URL是相对URL,既不包括域名的URL),我们就可以让URL与函数建立关联。这个过程我们称为注册路由,路由负责管理URL和函数之间的映射,而这个函数则被称为试图函数。

在这个程序里,app.route装饰器把根地址/和index()函数绑定起来,当用户访问这个URL时就会触发index()函数。

启动开发服务器

pipenv run flask run

flask run命令运行的开发服务器默认会监听http://127.0.0.1:5000/地址(按Ctrl+C退出),并开启多线程支持。当我们打开服务器访问这个地址时,会看到网页上显示“Hello Flask!”。

请添加图片描述

一个完整的网站当然不能只返回一句“hello world”,我们需要模版(template)和静态文件(static file)来生成更加丰富的网页。模版就是包含程序页面的HTML文件,静态文件则是需要在HTML文件中加载的CSS和JavaScript文件,以及图片字体文件等资源文件。默认情况下,模版文件存放在项目根目录中的templates文件夹中,静态文件存放在static文件夹下,这两个文件夹需要和包含程序实例的模块处于同一目录下,对应的项目结构示例如下:

hello/
	- templates/
	- statics/
	- app.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1648330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频剪辑神器:批量高效处理,轻松锐化视频让影片焕然一新!

视频已经成为我们记录生活、分享故事、展示才华的重要形式。然而&#xff0c;面对大量的视频文件&#xff0c;如何批量高效剪辑并提升视频质量&#xff0c;成为了许多人的难题。现在&#xff0c;我们为您带来一款视频剪辑神器&#xff0c;让您轻松处理视频&#xff0c;让您的影…

代码版本管理:提升团队协作效率的利器

在软件开发过程中&#xff0c;代码版本管理是一个至关重要的环节。它不仅能够有效管理代码的变更历史&#xff0c;还能提高团队协作效率、保证代码质量、降低风险。本文将介绍两种常用的代码版本管理工具&#xff1a;Git 和 Subversion&#xff08;SVN&#xff09;&#xff0c;…

数据库(MySQL)—— 初识和创建用户

数据库&#xff08;MySQL&#xff09;—— 初识 什么是数据库数据库的种类创建用户mysql -h 主机名或IP地址 -u 用户名 -p 登录mysqlSELECT USER(); 查看当前用户切换用户GRANT ALL PRIVILEGES ON 赋予用户权限 REVOKE 撤销权限示例注意事项 MySQL的图形化界面工具查看所有用户…

【SpringBoot】-- 监听容器事件、Bean的前后置事件

目录 一、ApplicationContextInitializer 使用 1、自定义类&#xff0c;实现ApplicationContextInitializer接口 2、在META-INF/spring.factories配置文件中配置自定义类 二、ApplicationListener 使用 1、自定义类&#xff0c;实现ApplicationListener接口 2、在META-…

“40法则”视角下的海外网络安全公司

2015 年知名投资人Brad Feld在他的博客中分享一篇名为《The Rule of 40% For a Healthy SaaS Company》的文章&#xff0c;提出了在评价海外企业软件和互联网公司财务状况时广泛使用的“Rule of 40”。“40法则”仅仅包含两个简单的参数&#xff1a;收入增长率和净利润率&#…

400G光模块产品最全分类解析

随着信息技术的迅猛发展&#xff0c;网络带宽需求不断增加&#xff0c;而400G光模块作为当前最热门的光通信技术之一&#xff0c;正在成为新一代网络的关键组成部分。本文将对400G光模块进行最全面的分类解析&#xff0c;以帮助大家深入了解其技术特点和应用场景。 一、ETU-LI…

CTF-中国蚁剑安装教程

资源目录 github地址&#xff1a; 蚁剑源代码 https://github.com/AntSwordProject 蚁剑加载器 https://github.com/AntSwordProject/AntSword-Loader 下载过程 下载这两个zip包&#xff1a; 给源代码找个空文件夹并解压缩&#xff1a; 打开加速器&#xff0c;使用管理员…

java.util详细讲解和应用

文章目录 java.util核心组件1. 集合框架&#xff08;Collection Framework&#xff09;2. 日期时间API&#xff08;java.time包&#xff09;3. Random 类4. Scanner 类5. Arrays 类6. Collections 类应用实例ArrayList 示例LocalDate 示例Random 示例 7. Iterator&#xff08;迭…

使用sqlmodel实现唯一性校验2,插入之前检查是否已存在

虽然之前添加唯一性校验的方法能够解决数据唯一的问题&#xff0c;但是如果忘了处理异常&#xff0c;则可能会导致程序崩溃。 在此基础上&#xff0c;我们可以在插入数据之前检查该数据是否已存在。 原来的代码&#xff1a; from sqlmodel import Field, Session, SQLModel,…

# Maven 下载安装与配置

Maven 下载安装与配置 一、前言&#xff1a; 1、Maven 简介&#xff1a; Apache Maven是一个&#xff08; 特别是 Java 编程 &#xff09;项目管理及自动构建工具&#xff0c;由 Apache 软件基金会所提供。基于项目对象模型&#xff08; 缩写&#xff1a;POM &#xff09;概念…

【Pytorch】4.torchvision.datasets的使用

什么是torchvision.datasets、 是pytorch官方给出的关于cv领域的训练数据集&#xff0c;我们可以用官方提供的数据集进行学习与训练 如何查看 我们可以进入Pytorch官网 切换一下版本到v0.9.0&#xff0c;就可以看到官方给出的数据集了 同时也有官方训练好的cv模型可以供我们…

华为手机怎么录屏?3个简单方法教会你

随着智能手机的普及&#xff0c;录屏功能已成为许多用户日常操作中的必备工具。华为手机作为市场上的热门品牌&#xff0c;为用户提供了多种录屏方法&#xff0c;以满足不同场景和需求。 那么华为手机怎么录屏&#xff1f;本文将详细介绍3个华为手机的几种录屏方法&#xff0c…

容器Docker:轻量级虚拟化技术解析

引言 随着云计算和虚拟化技术的飞速发展&#xff0c;容器技术以其轻量级、高效、可移植的特性&#xff0c;逐渐成为了软件开发和部署的新宠。在众多容器技术中&#xff0c;Docker以其简单易用、功能强大的特点&#xff0c;赢得了广泛的关注和应用。本文将全面介绍Docker的基本概…

普通组件的注册-局部注册和全局注册

目录 一、局部注册和全局注册-概述 二、局部注册的使用示例 三、全局注册的使用示例 一、局部注册和全局注册-概述 组件注册有两种方式&#xff1a; 局部注册&#xff1a;只能在注册的组件内使用。使用方法&#xff1a;创建.vue文件&#xff0c;在使用的组件内导入并注册。…

浅谈智能电气火灾监控系统的设计及应用

摘要&#xff1a;致电气火灾的原因是多方面的&#xff0c;主要成因包括漏电、绝缘层老化、短路、电火花密集、接地发生故障、电气设备自然、接触不良和电流超负荷等。文章分析电气火灾的成因&#xff0c;并探索电气火灾监控系统的设计方案与注意事项。 关键词&#xff1a;电气…

揭秘APP广告变现:从零到月入过万的秘密

在移动互联网的时代&#xff0c;APP的开发和运营成为了一个热门的行业。然而&#xff0c;对于许多开发者来说&#xff0c;如何通过APP广告变现&#xff0c;实现收益最大化&#xff0c;是一个值得深思的问题。今天&#xff0c;就让我们通过一个小故事&#xff0c;一起来探讨一下…

助贷客户管理系统:助力助贷公司轻松实现30%增长目标!

为了解决传统助贷公司在业务过程中遇到的痛点&#xff0c;盛鑫优创科技特别设计了一款定制化的解决方案——"鑫鹿助贷客户管理系统"&#xff0c;以满足助贷行业的独特需求&#xff1a; 传统助贷公司的老板们在做业务的的过程中都有这些痛点&#xff1a; 1、没有一个…

25_Scala集合Tuple

文章目录 tuple1.元组定义2.Tuple元素访问3.如果元素的len2&#xff0c;称之为键值对对象&#xff0c;也称之为对偶元组4.补充上节Map5.Map集合遍历6.集合之间相互转化 tuple 概念&#xff1a;scala语言采用特殊的方式将无关的数据作为一个整体&#xff0c;组合在一起’ 1.元…

综合性SCI期刊,中科院3区,IF=4+,征稿范围广泛!

一、期刊名称 Scientific Reports 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;综合性期刊 影响因子&#xff1a;4.6 中科院分区&#xff1a;3区 出版方式&#xff1a;开放出版 版面费&#xff1a;$2590 三、期刊征稿范围 期刊发表来自自然科学、心…

EXCEL——VLOOKUP函数

一、VLOOKUP函数的语法 VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]) lookup_value 需要在数据表首列进行搜索的值&#xff0c;可以是数值&#xff0c;引用或字符串 table_array 要在其中搜索数据的文字、数字或逻辑值表&#xff0c;可以是对区域或…