Python Flask框架(一)初识Flask
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
相关文章:
Python Flask框架(一)初识Flask
Flask是使用Python编写的Web微框架。Web框架可以使我们不用关心底层的请求响应处理,更方便高效的编写Web程序。Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface,web服务器网关接口)工具集,另…...
VS2022 .Net6.0 无法打开窗体设计器
拿Vs2022 建了个Demo,运行环境是net6.0-windows,无论双击或是右键都打不开窗体设计器 打开项目目录下的*.csproj.user <?xml version"1.0" encoding"utf-8"?> <Project ToolsVersion"Current" xmlns"htt…...
Linux学习之高级IO
之前的内容我们基本掌握了基础IO,如套接字,文件描述符,重定向,缓冲区等知识都是文的基本认识,而高级IO则是指更加高效的IO。 对于应用层,在读写的时候,本质就是把数据写给OS,若一方…...
一分钟了解Polysciences PEI 40K转染试剂的原理
在细胞实验中,细胞转染大概是最常用、最基础的实验技能。转染细胞的方法很多,而PEI作为带有高电荷阳离子的多聚物,非常容易结合带负电荷的DNA分子,形成复合物,在HEK293和CHO等细胞中转染效率较高,常用于大规…...
Clickhouse IP 函数
IPv4NumToString(num) 将数字类型ip转换为IPv4格式。 Takes a UInt32 number. Interprets it as an IPv4 address in big endian. Returns a string containing the corresponding IPv4 address in the format A.B.C.d (dot-separated numbers in decimal form). Alias: …...
【Python】numpy.ptp()
numpy.ptp() 函数是 NumPy 库中的一个有用函数,用于计算数组中的“峰到峰”(peak-to-peak)值,即数组中的最大值与最小值之差。这个函数可以帮助快速评估数组中数据的变化范围,常用于信号处理、数据分析等领域中&#x…...
The provided password or token is incorrect or your account
IDEA使用git技巧 【/n】 01 问题出现场景 我的gitlab上个月生成的token到期了,于是今天推上去的时候报了这个错误 The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See ht…...
常见的shell命令
以下是一些常见的shell命令: cd:改变当前目录;ls:列出目录中的文件和子目录;mkdir:创建一个新的目录;touch:创建一个新的空文件或更新已存在的文件的时间戳;rmÿ…...
堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面
文章目录 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面1.打印异常堆栈2.去除第三方app的倒计时页面3.模拟点击事件跳过首页进入主页 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#x…...
只允许内网访问时,如何设置hosts
1、Hosts文件简介 hosts文件是一个没有扩展名的计算机文件,用于将主机名与对应的 IP 地址关联起来。在操作系统中,hosts文件通常用于在本地解析域名,以便将域名映射到特定的IP地址。这个文件可以用来屏蔽广告、加速访问特定网站、解决DNS解析…...
nature《自然》期刊文献怎么在家查看下载
nature《自然》期刊我们都知道,是世界上历史悠久的、最有名望的科学杂志之一。下载该期刊文献是需要使用权限的,如果你没有nature《自然》期刊的资源,又该如何获取呢?请看本文的经验分享。 一、先百度“文献党下载器” 在文献党下…...
python作业五
题目:注册登录 制作一个注册登录模块 注册:将用户填入的账户和密码保存到一个文件(users.bin) 登陆:将用户填入账户密码和users.bin中保存的账户密码进行比对,如果账户和密码完全相同 那 么登录成功,否则登录失败…...
经典的设计模式和Python示例(一)
目录 一、工厂模式(Factory Pattern) 二、单例模式(Singleton Pattern) 三、观察者模式(Observer Pattern) 一、工厂模式(Factory Pattern) 工厂模式(Factory Pattern…...
Ubuntu服务器如何安装桌面
更新软件库 apt-get update 升级软件 apt-get upgrade 安装ubuntu桌面系统 apt-get install ubuntu-desktop 运行过程需要手动确认两次,选择 Y。 安装完成之后,终端输入 reboot,重启服务器。...
填报表如何实现电话号码的校验
单元格校验时,只能输入数字和特定字符(-),即实现固话和手机号码的校验,保证录入的规范,应如何实现? 解决方案:使用正则表达式实现校验效果,如下图所示: 校验…...
揭秘全网热门话题:抖音快速涨粉方法,巨量千川投流助你日增10000粉
在当今社交媒体的时代( 千川投流:hzzxar)抖音成为了年轻人分享自己才华和生活的平台。然而,要在抖音上快速获得关注和粉丝,却不是一件容易的事情。今天,我们将揭秘全网都在搜索的抖音快速涨1000粉的秘籍,带…...
电脑提示‘找不到msvcr110dll,无法继续执行代码’的解决方法,3分钟快速修复
不知道大家有没有遇到过这种情况,无端端电脑提示你找不到msvcr110dll,无法继续执行代码?当出现这个情况,证明你的某个程序就已经运行不了,你需要去修复这个错误,才能正常的运行程序,下面我们一起来详细的了…...
如何在Hostease的Linux虚拟主机上永久移除WordPress网站
最近有遇到客户咨询如何移除Linux虚拟主机上的WordPress网站的, 因为原先的站点长时间不更新,被恶意篡改,跳转到了一个博彩网站上,本身网站也比较旧了,客户也不准备修复,准备重新建站。但是又怕移除不干净&…...
【云原生】Docker 的网络通信
Docker 的网络通信 1.Docker 容器网络通信的基本原理1.1 查看 Docker 容器网络1.2 宿主机与 Docker 容器建立网络通信的过程 2.使用命令查看 Docker 的网络配置信息3.Docker 的 4 种网络通信模式3.1 bridge 模式3.2 host 模式3.3 container 模式3.4 none 模式 4.容器间的通信4.…...
如何优雅的实现浏览器多标签通讯
前言 开发过程中无法避免遇到需要进行多标签通讯的情况,例如: 管理员登陆后,其他打开标签的页面登陆状态要变更课堂页面只能打开一个,另一个则通知失效等等。。。场景 然而实现该功能,我们需要使用页面能共同持有的…...
蓝桥杯嵌入式备赛:手把手搞定AT24C02 EEPROM读写(附CubeMX配置与常见Bug修复)
蓝桥杯嵌入式竞赛实战:AT24C02 EEPROM高效读写全攻略 1. 赛前准备:理解I2C与EEPROM的核心机制 在蓝桥杯嵌入式竞赛中,AT24C02这类EEPROM器件常被用作非易失性存储解决方案。与常见Flash存储器不同,EEPROM支持字节级擦写…...
VK视频下载器:三步实现VKontakte视频永久保存的实用方案
VK视频下载器:三步实现VKontakte视频永久保存的实用方案 【免费下载链接】VK-Video-Downloader Скачивайте видео с сайта ВКонтакте в желаемом качестве 项目地址: https://gitcode.com/gh_mirrors/vk/VK-Video…...
终极指南:如何用Python实现手机号反查QQ号的3种高效方法
终极指南:如何用Python实现手机号反查QQ号的3种高效方法 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 在数字身份管理日益复杂的今天,你是否遇到过忘记某个手机号绑定了哪个QQ账号的困扰?或者需…...
【免费下载】 MobaXterm 汉化版资源文件下载
MobaXterm 汉化版资源文件下载 资源文件介绍 文件名: MobaXterm_CHS.zip 文件类型: 压缩包 文件描述: 该资源文件为 MobaXterm 的汉化版本,提供了增强型终端、X 服务器和 Unix 命令集(GNU/Cygwin)工具箱的功能。 MobaXterm 简介 MobaXterm 又…...
【亲测免费】 TSK UF系列Prober操作手册下载
TSK UF系列Prober操作手册下载 【下载地址】TSKUF系列Prober操作手册下载 本仓库提供TSK UF系列Prober的操作手册下载,具体为UF190/UF200系列的manual。TSK UF系列Prober是半导体厂针测的重要设备,该手册详细介绍了设备的各项功能、操作步骤以及维护保养…...
CVPR2021明星算法LoFTR实战:在Ubuntu 20.04上从零搭建Python 3.7+Pytorch 1.6.0环境,跑通第一个图像匹配Demo
CVPR2021明星算法LoFTR实战:在Ubuntu 20.04上从零搭建Python 3.7Pytorch 1.6.0环境,跑通第一个图像匹配Demo 计算机视觉领域每年都会涌现出大量创新算法,而CVPR2021上发表的LoFTR(Detector-Free Local Feature Matching with Tran…...
YOLOv8从零部署到实战:一站式环境配置与核心功能解析
1. YOLOv8环境搭建全攻略 第一次接触YOLOv8时,我也被各种依赖项搞得头晕眼花。经过多次实践,我总结出一套最稳妥的安装方案,特别适合刚入门的新手。YOLOv8作为当前最先进的目标检测框架之一,其安装过程确实比传统CV库复杂些&#…...
项目介绍 基于java+vue的校园舆情监测与预警系统设计与实现(含模型描述及部分示例代码)专栏近期有大量优惠 还请多多点一下关注 加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢
基于javavue的校园舆情监测与预警系统设计与实现的详细项目实例 请注意此篇内容只是一个项目介绍 更多详细内容可直接联系博主本人 或者访问对应标题的完整博客或者文档下载页面(含完整的程序,GUI设计和代码详解) 校园舆情监测与预警系统…...
基于Spark的分布式量化交易框架:事件驱动架构与实战开发
1. 项目概述与核心价值最近在跟几个做量化交易的朋友聊天,发现一个挺有意思的现象:大家手里或多或少都有一些基于Python的量化策略,但真正能稳定、高效、自动化跑起来的,却不多。问题往往出在几个地方:要么是本地机器性…...
从双非到科软:我的22408备考复盘与实战指南
1. 双非逆袭科软:我的备考心路历程 作为一名双非院校的计算机专业学生,我深知考研这条路有多难走。去年这个时候,我也和屏幕前的你一样,在知乎、贴吧疯狂搜索各种经验贴,既期待又忐忑。现在回想起来,从3月到…...
