新建flask项目,配置入口文件,启动项目

  • pycharm新建flask项目时,会提供一个创建flask项目的导向,自动设置虚拟环境,并且安装flask及其依赖
  • 而vscode新建flask项目时,需要手动设置虚拟环境并安装flask,需要在终端使用pip install flask命令来安装flask及其依赖
  • 如果是使用pycharm新建了一个flask项目,然后用vscode打开,那么就意味着flask已经安装及其依赖已经安装,虚拟环境也已经安装,只需要确保vscode选择的python解释器和pycharm的一样即可

以下是vscode新建flask项目:

一:新建虚拟环境并创建flask项目文件

  1. 新建文件夹  flaskproject_virtualenv

  2. 创建虚拟环境:
    从文件夹flaskproject_virtualenv路径进入命令行工具

    安装虚拟环境工具   pip install virtualenv(若是不行,更换为pypi源 :pip install virtualenv --index-url=https://pypi.org/simple)

    创建虚拟环境  virtualenv venv(venv是虚拟环境名称,自定义)

    激活虚拟环境  venv\Scripts\activate











    输入venv\Scripts\activate命令回车激活虚拟环境,可以看到路径之前已经有venv,说明激活成功





     
  3. 虚拟环境中新建flask项目
    安装flask框架


     
  4. 在flaskproject_virtualenv文件夹下新建flask项目文件manage.py,该文件和虚拟环境文件夹在同一级目录

二:项目入口文件的配置,启动应用
主要有:导入flask及相关库,创建flask应用实例,配置应用,设置路由

  1. 导入flask,jsonify,CORS

单一入口模式:所有请求都由manege.py控制,所以才有项目入口文件

manage.py项目入口文件创建好之后导入包:其一是flask框架文件,其二是跨域文件(跨域,因为有浏览器同源策略,不同协议,不同域名,不同端口,不能通信)

 

from flask import Flask,jsonify
from flask_cors import CORS#从flask中导入Flask项目文件和jsonify。jsonify,序列化操作使用,是用于将python内置数据类型转换为json数据类型,作为接口返回给前端,就是通过jsonify实现#其二是跨域文件(跨域,因为有浏览器同源策略,不同协议,不同域名,不同端口,不能通信)

 之前设置了pip安装时会使用阿里云镜像源,其是一个第三方镜像,特别是在中国区能提供更快的下载速度
pypi作为官方源,拥有最新的包和版本,稳定性和可靠性较高

继安装flask_cors用阿里云镜像源失败之后转换为pypi官方源


通过pip config list查看当前配置,发现镜像源确实被设置为了阿里云镜像源


恢复默认pypi镜像源:pip config unset global.index-url
 

2. 实例化flask对象(python是面向对象语言,要用到某些模块,必须实例化对象,把它作为对象返回,才能使用)
作用:

  1. 创建应用上下文:Flask 对象是应用的核心,负责管理请求、响应和应用的配置。实例化后,Flask 就能够处理所有的请求和响应。

  2. 配置管理:实例化 Flask 对象时,可以传入配置参数,如数据库连接、调试模式等。这些配置会影响应用的行为和性能。

  3. 路由和视图函数:Flask 对象允许你定义路由和视图函数,将 URL 映射到相应的处理逻辑。实例化后,你可以使用 @app.route 装饰器来定义路由。

  4. 中间件和扩展:Flask 支持中间件和扩展(如数据库、认证等),实例化的 Flask 对象是这些扩展的注册和管理中心。

  5. 蓝图支持:通过 Flask 对象,可以使用蓝图(Blueprints)来组织应用的不同部分,促进模块化和可维护性。

总之,实例化 Flask 对象是构建一个 Flask 应用的基础,提供了应用的整体结构和功能

from flask import Flask,jsonify
from flask_cors import CORS#实例化flask对象
app=Flask(__name__)#配置跨域
CORS(app,cors_allowed_origins="*") #跨域允许远端所有人访问

3.配置路由

@app.route('/',methods=['GET'])#项目首页就是/,接着是请求方,get通过url浏览器方式请求。默认通过get拆线呢方式来配置首页。使用到了@装饰器语法糖。def index():#首页res = {"msg":"你好"} #字典return jsonify(res) #字典序列化为json数据类型

所谓装饰器,就是一个函数,想要在该函数中添加另外的函数增加其功能,除了这样定义手动添加之外
def say_hello():
    print("Hello!")

say_hello = my_decorator(say_hello) # 手动应用装饰器 

还可以使用@语法糖自动添加
@my_decorator # 这行是装饰器的简写
def say_hello():
    print("Hello!"

4.启动flask项目

if __name__ == "__main__":#main入口才会运行app.run(debug=True,host="0.0.0.0",port=5000)#debug调试模式,修改代码时项目会自动重启而不需要自行去重启#host="0.0.0.0",可以从任何网址或ip访问我们项目#port=5000,端口号5000,跑在5000端口

从flask项目根目录文件夹进入项目命令行·

输入命令激活虚拟环境,前面显示(venv),即为激活成功

venv\Scripts\activate 

上一个flask项目时直接在系统环境变量中设置了项目入口文件是App.py。现在如果直接在命令行flask run启动的话是会报错的,所以要在命令行设置FLASK_APP=manage.py,回车之后输入flask run


flask run 和 python manage.py之间的区别
flask run启动:



python manage.py启动:


 可以看到使用python manage.py时,会出现更多调试信息。

这是因为python manage.py 时,它直接运行你的 Flask 应用,通常会在代码中包含更多调试信息,比如正在监听的地址和调试模式的状态。

flask run 是一个更简化的命令,默认情况下只会提供基本的信息。如果希望看到更多输出,可以在运行时加上 --debug 参数 flask run --debug


补充:也可以ctrl+`打开vscode终端输入flask run进行启动

若是不行,右击vscode图标,以管理员身份运行,接着再执行flask run

补充:

 标红的警告信息是指当前正在使用 Flask 自带的开发服务器。这种服务器适合开发和测试,但不适合用于生产环境。它的特点是性能较低,且在并发处理请求时可能不够稳定。

  • Development Server:这是 Flask 默认的服务器,方便开发时快速运行和测试应用。
  • Production Deployment:指的是在正式环境中使用的服务器,比如 Gunicorn、uWSGI 或者其他 WSGI 服务器。它们通常能处理更多的请求,并具备更好的性能和稳定性。

项目入口文件启动之后,flask应用开始监听指定的端口(默认是5000),并且等待来自客户端的请求。

可以在浏览器中访问该地址,查看应用的功能和页面。在浏览器中输入http://127.0.0.1:5000http://localhost:5000

  • 127.0.0.1 是回环地址(loopback address),用于指代本机。它是 IPv4 的标准地址。
  • localhost 是一个主机名,通常解析为 127.0.0.1,便于用户记忆和使用

调试模式开启时,代码更改后会自动重启,并提供调试信息。可以在终端查看请求日志和任何错误信息。

 



 

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

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

相关文章

无人船在海洋勘探领域的应用!

一、具体应用 海底地形测绘: 无人船可以搭载多波束测深仪等先进设备,进行高精度的海底地形测绘。这些设备能够生成详细的海底地形图,为海洋工程设计和施工提供详尽的水下地形资料。 海底资源勘探: 通过搭载磁力仪、重力仪等地…

vue框架学习 -- 表单开发之页面自定义显示值

在 Vue 2.0 中,如果在使用 Element UI 的 组件,并希望自定义 中显示的 prop 属性的值(比如, memberName),有几种方法可以实现这一点。最直接的方法之一是在 Vue 组件的 data 函数或计算属性(com…

HTML5实现唐朝服饰网站模板源码

文章目录 1.设计来源1.1 网站首页-界面效果1.2 唐装演变-界面效果1.3 唐装配色-界面效果1.4 唐装花纹-界面效果1.5 唐装文化-界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcL…

【Kubernetes】常见面试题汇总(四十一)

目录 94. iptables 四个表五个链。 95. Kubernetes 如何简化容器化部署? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kuber…

TikTok直播:选择TK直播盒子还是专线节点?

随着短视频平台的蓬勃发展,TikTok(抖音国际版)直播已成为主播和商家推广产品、增强与观众互动的重要手段。在这一过程中,选择合适的直播工具和技术方案显得尤为重要。对于希望在TikTok上取得成功的主播而言,使用TK直播…

JSON 教程

JSON 教程 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> …

UE虚幻引擎云渲染汽车动画的优势!

在汽车广告和动画制作领域&#xff0c;虚幻引擎&#xff08;UE&#xff09;结合云渲染技术正掀起一场技术革命。这项技术以其高性能、成本效益和灵活性&#xff0c;为创作者提供了强大的工具&#xff0c;以实现更加逼真和高效的汽车动画制作。 一、为什么选择UE虚幻引擎制作汽车…

学习笔记每日一题

给你一个整数 n &#xff0c;找出从 1 到 n 各个整数的 Fizz Buzz 表示&#xff0c;并用字符串数组 answer&#xff08;下标从 1 开始&#xff09;返回结果&#xff0c;其中&#xff1a; answer[i] "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] "Fizz…

2024年厦门市大数据创新应用大赛圆满收官

2024年厦门市大数据创新应用大赛圆满收官 2024年9月19日-20日&#xff0c;由厦门市数据管理局、厦门市公安局、厦门市生态环境局联合主办&#xff0c;厦门市信息中心承办的2024年厦门市大数据创新应用大赛圆满收官。 经专家评审团评审 最终决出获奖名单 决赛评审会现场 2024年…

PMI-ACP®认证考试内容将于2025年第一期考试更新

PMI敏捷管理专业人士&#xff08;PMI-ACP&#xff09;认证即将在2025年迎来引入中国大陆的十周年纪念。 十年时间&#xff0c;我们见证了敏捷实践方法普及和敏捷项目管理的“知行合一”&#xff0c;采用敏捷方法的中国企业团队比例的快速持续增长&#xff0c;中国PMI-ACP专业人…

HarmonyOS 自定义 loading 效果

大致思路 主要利用 Progress 组件 利用aboutToAppear周期函数&#xff1a;在创建自定义组件的新实例后&#xff0c;在执行其build()函数之前执行 利用aboutToDisappear函数在自定义组件析构销毁之前执行&#xff0c;这里主要用来清除定时器 实现效果 组件封装 components/H…

【pytorch】pytorch入门4:神经网络的卷积层

文章目录 前言一、定义概念 缩写二、性质三、代码总结参考文献 前言 使用 B站小土堆课程的笔记 一、定义概念 缩写 卷积层是神经网络中用于突出特征来进行分类任务的层。 二、性质 卷积核例子&#xff1a;vgg16 model 三、代码 添加库 python代码块import os import …

大屏可视化px转rem方案实现

该方案有点不会字体模糊&#xff0c;现实一比一扩张收缩。 参考&#xff1a;vue项目实现PC端各分辨率适配 - 李云蹊 - 博客园 (cnblogs.com) 注意该文章Vue项目使用webpack。 如果 如果 如果 你用的是Vuevite Vite Vite Vite需要修改 postcss.config.js 文件 import autopr…

linux:chown用法详解

文章目录 1. 描述2. 语法3. 参数4. 例子 1. 描述 chown 是 Linux 中用于更改文件或目录的所有者和所有者组的命令。 2. 语法 chown [选项] 所有者[:组] 文件名详细用法&#xff1a; Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...or: chown [OPTION]... --reference…

机器人顶刊IEEE T-RO发布无人机动态环境高效表征成果:基于粒子的动态环境连续占有地图

摘要&#xff1a;本研究有效提高了动态环境中障碍物建模的精度和效率。NOKOV度量动作捕捉系统助力评估动态占用地图在速度估计方面的性能。 近日&#xff0c;上海交通大学、荷兰代尔夫特理工研究团队在机器人顶刊IEEE T-RO上发表题为Continuous Occupancy Mapping in Dynamic …

vue是如何优化

Vue的性能优化是一个涉及多个方面的综合过程&#xff0c;旨在提高Vue应用的运行效率和用户体验。以下是一些关键的Vue优化策略&#xff1a; 1. 代码层面的优化 a. 使用函数式组件 函数式组件相比普通组件没有状态&#xff08;没有响应式数据&#xff09;和实例&#xff08;没…

『功能项目』鼠标悬停物品显示信息【77】

本章项目成果展示 我们打开上一篇763D模型动态UI显示的项目&#xff0c; 本章要做的事情是鼠标悬停在道具身上显示对应信息 首先制作一个武器Image信息面板 重命名为WeaponUI01 设为隐藏 修改脚本&#xff1a;RightClickItem.cs 查看挂载脚本&#xff1a; 运行项目 - 当鼠标悬…

多线程计算π

1、实现单线程计算π 2、使用任务分解方法,使用2线程,并行计算π 3、使用数据分解方法,使用2线程,并行计算π 注意:在循环中使用以上计算π的公式,n取值为1到Int.Max 问题1: import java.lang.*;public class Thread1 extends Thread{@Overridepublic void run(){l…

个性化大语言模型:PPlug——让AI更懂你

在当今数字化转型的时代&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为了不可或缺的工具&#xff0c;它们在自然语言理解、生成和推理方面展现了非凡的能力。然而&#xff0c;这些模型普遍采用的是“一刀切”的方式&#xff0c;即对于相同的输入给予所有用户相…

HDFS分布式文件系统01-HDFS架构与SHELL操作

HDFS分布式文件系统 学习目标第一课时知识点1-文件系统的分类单机文件系统网络文件系统分布式文件系统 知识点2-HDFS架构知识点3-HDFS的特点知识点4-HDFS的文件读写流程知识点5-HDFS的健壮性 第二课时知识点1-HDFS的Shell介绍HDFS Shell的语法格式如下。HDFS Shell客户端命令中…