Flask开发之环境搭建

目录

1、安装flask

2、创建Flask工程

​编辑

3、初始化效果

4、运行效果

5、设置Debug模式

6、设置Host

 7、设置Port

8、在app.config中添加配置


1、安装flask

        如果电脑上从没有安装过flask,则在命令行界面输入以下命令:

 pip install flask

        如果电脑上曾经安装过flask,则先检查flask的版本,如果版本低于2.0.1,则进行升级。

 #查看flask版本
 pip show flask
 #升级flask
 pip install --upgrade flask

2、创建Flask工程

3、初始化效果

        新创建的Flask项目含有templates和static两个文件夹,以及一个app.py文件。如果使用的是社区版的Pycharm则不会产生这三个文件,需要自行创建。

app.py文件:该文件是项目的入口文件,会默认生成一个主路由,并且视图函数名叫hello_world。

 #app.py文件初始化代码
 from flask import Flask
 ​
 app = Flask(__name__)
 ​
 ​
 @app.route('/')
 def hello_world():
     return 'Hello World!'
 ​
 ​
 if __name__ == '__main__':
     app.run()

templates文件夹:用于存放模板文件。

static文件夹:用于存放静态文件。

4、运行效果

        运行代码,在浏览器中输入http://127.0.0.1:5000即可看到浏览器网页显示“Hello World!”字样。至此,一个最简单的flask项目就创建完成了

5、设置Debug模式

        设置Debug模式后,如果我们对代码进行修改,保存后Flask将会自动重启项目。如果程序出现错误,在开启Debug模式下,在浏览器端会显示错误信息,并且标记错误行号,有利于定位bug。点击右上角的demo1右侧下拉按钮,然后在弹出的下拉了列表中选择Edit Configurations命令。

        在本项目的编辑界面中选中FLASK_DEBUG复选框,然后点击OK即可。

        运行代码,可以看到PyCharm控制台显示已经开启Debug模式。

        如果是社区版的PyCharm则需要在app.run方法调用时,添加debug=True参数。

 from flask import Flask
 ​
 app = Flask(__name__)
 ​
 ​
 @app.route('/')
 def hello_world():
     return 'Hello world!'
 ​
 if __name__ == '__main__':
     app.run(debug=True)

6、设置Host

        在Edit Configurations界面,在Additional options中添加“--host=新的主机地址”即可。

Host地址访问方式
本机的局域网IP地址自己的计算机和局域网中的其他计算机都需要通过本机的IP地址才能访问到
127.0.0.1代表本机的IP地址,只能本机访问,局域网中的其他计算机无法访问
0.0.0.0本机既可以通过127.0.0.1访问,也可以通过本机的IP地址访问。局域网中的其他计算机需要通过本机的IP地址访问

        运行项目可以通过哪些IP地址访问到本项目。

 7、设置Port

        在Edit Configurations界面,在Additional options中添加“--port=新的端口号”即可。当两个项目同时运行时,都是用默认端口号,则一次只能运行一个项目。而设置端口号,是两者各占一个端口,则可以同时运行两个项目。

         如果是社区版的PyCharm则需要在app.run方法调用时,手动设置host和port参数。

 from flask import Flask
 ​
 app = Flask(__name__)
 ​
 ​
 @app.route('/')
 def hello_world():
     return 'Hello world!'
 ​
 if __name__ == '__main__':
     app.run(debug=True,host="0.0.0.0",port=8000)

8、在app.config中添加配置

        app.config是Config的对象,Config是一个继承自字典的子类,可以像操作字典一样操作它。在使用app.config是需要注意,所有配置项的名称都必须大写,否则不会被app.config读取到。参数较少的情况下,我们可以直接在文件中进行配置。

 from flask import Flask
 ​
 app = Flask(__name__)
 app.config["SECRET_KEY"] = "1563456"
 # 不会被读取到
 app.config["secret_key"] = "4894894"
 print(app.config["SECRET_KEY"])
 ​
 @app.route('/')
 def hello_world():
     return 'Hello world!'
 ​
 ​
 if __name__ == '__main__':
     app.run(debug=True,host="0.0.0.0",port=8000)

         如果需要配置的参数较多,可以直接创建一个config.py文件来存储配置信息。如果配置项名称出现小写,则会报错。

 #app.py文件
 from flask import Flask
 import config
 ​
 app = Flask(__name__)
 app.config.from_object(config)
 print(app.config["TOKEN_KEY"])
 ​
 @app.route('/')
 def hello_world():
     return 'Hello world!'
 ​
 ​
 if __name__ == '__main__':
     app.run(debug=True,host="0.0.0.0",port=8000)
 ​
 #config.py文件
 TOKEN_KEY = "123456"

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

给大家介绍几个手机冷门但好用的小技巧

技巧一:拍照识别植物 手机的拍照识别植物功能是指在使用手机相机时,可以通过对植物进行拍照,并通过植物识别技术,获取植物的相关信息和资料。其主要优点如下: 方便实用:使用拍照识别植物功能,…

【Java笔试强训 18】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥统计每…

基于springcloud微服务的java课程资源在线学习考试系统

在我国,由于计算机与网络技术的不断发展,信息化建设的不断深入,不管是企业、学校或个人都在结合计算机网络技术队现有的管理或生活中的一些环节进行开发研究,运用计算机进行一些必要的数据信息管理,分析及发布&#xf…

拷贝构造函数和赋值重载函数详解

1.拷贝构造函数 1.1拷贝构造函数的概念 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。拷贝构造函数也是特殊的成员函数,其特征如下&#…

第三十一章 Unity骨骼动画

关于骨骼动画的原理,我们这里不再详细介绍,有不清楚的可以回去看DirectX课程和3dsMAX课程。接下来,我们来讲解一下Unity的骨骼动画系统。Unity 的动画系统基于动画剪辑(Animation Clip)的概念,它的本质就是…

LeetCode - 239 滑动窗口最大值

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 239. 滑动窗口最大值 - 力扣(LeetCode) 题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k…

springboot+vue前后端分离项目打包成jar包及运行

将 Spring Boot 和 Vue.js 项目打包成 jar 包需要按照以下步骤操作: 在项目的根目录中,使用命令行进入 Vue.js 项目的根目录,然后运行以下命令: npm run build这个命令将会构建 Vue.js 项目,并在项目的 dist 目录中生…

鸿蒙Hi3861学习八-Huawei LiteOS(事件标记)

一、简介 事件是一种实现任务间通信的机制,可用于实现任务间的同步。但事件通信只能是事件类型的通信,无数据传输。一个任务可以等待多个事件的发生:可以是任意一个事件发生时唤醒任务进行事件处理;也可以是几个事件都发生后才唤醒…

华为网络设备+WinRadius 实现用户统一管理设备

一、直接贴配置 ###配置VTY用户界面所支持的协议、验证方式 user-interface vty 0 4 protocol inbound telnet authentication-mode aaa quit ###配置RADIUS认证 ###(1)配置RADIUS服务器模板,指定服务器的IP地址与端口号、共享密钥 radius-s…

Unity - Render Doc - 解决 Waiting For Debugger 导致连接不了 APP 的问题

环境 Unity : 2020.3.37f1 Pipeline : BRP RDC : 1.26 问题 平常有一些公司内的游戏发布在移动端运行会有各种异常,但是 unity editor (android opengl es / dx) 下正常 如果没有真机抓帧分析,是搞不定的 然后 RenderDoc 在抓发布出来的调试包也抓不…

漫画 | Linux之父:财务自由以后,我失眠了!

前言:今年是Linux诞生的30周年! 1991年的8月, Linus在新闻组中公布了他正在开发的一个免费的操作系统,这也是以后风靡世界的Linux操作系统的雏形。 今天翻到这篇漫画,看到Linux的诞生过程,很是感慨&#x…

SuperMap GIS基础产品云GIS FAQ集锦(2)

SuperMap GIS基础产品云GIS FAQ集锦(2) 【iManager】云套件ispeco-dashboard-api的日志等级只有到info,如何设置才能查看到debug级别的日志? 【解决方案】可以在ispeco-dashboard-api的deployment中添加以下环境变量,…

vue框架快速入门

vue 1、第一个Vue程序1.1、什么是Vue程序1.2、为什么要使用MVVM1.3、Vue1.4、第一个vue程序 2、基础语法2.1、v-bind2.2、v-if, v-else2.3、v-for2.4、v-on 3、Vue表单双绑、组件3.1、什么是双向数据绑定3.2、在表单中使用双向数据绑定3.3、什么是组件 4、Axios异步…

PyQt5 基础篇(一)-- 安装与环境配置

1 PyQt5 图形界面开发工具 Qt 库是跨平台的 C 库的集合,是最强大的 GUI 库之一,可以实现高级 API 来访问桌面和移动系统的各种服务。PyQt5 是一套 Python 绑定 Digia QT5 应用的框架。PyQt5 实现了一个 Python模块集,有 620 个类,…

从0学会Spring框架

文章目录 1. 对Spring的理解2. Spring IoC3. DI4. 如何创建一个Spring项目4.1 创建一个Maven项目4.2 添加Spring框架支持4.3 添加启动类 5. 存储Bean对象5.1 添加配置文件5.2 创建Bean对象5.3 注册Bean 6. 获取并使用Bean对象7. 更简单存储Bean对象的方式7.1 前置工作7.2 添加存…

基于javaweb的学生就业管理系统

一、简介 学生基业管理系统有三个角色:管理员、企业、学生 对学生信息管理、企业信息管理、求职信息管理 后端架构:spring springmvc mybatis 前端架构:jsp layui 系统环境:jdk1.8 | maven | mysql 二、主要功能 1. 登录…

一个集团企业,如何从0到1构建信息化系统?

当今时代,信息技术已经成为企业发展不可或缺的一部分,特别是对于一个大型集团公司来说,如何构建一个高效的信息化系统对于其业务发展至关重要。 我们想要构建一个优质高效的信息化系统,首先需要了解现在大的趋势是怎样的。 目前…

看我如何通过帮助服务台轻松黑掉数百家公司

导语:几个月前,我发现黑客可以利用一个漏洞访问目标公司的内部通信。 这个漏洞只需要点击几下,就可以访问企业内部网络、 Twitter等社交媒体账户,以及最常见的Yammer和Slack团队。 更新: The Next Web 写了一篇我发现的这个漏洞的…

【Java笔试强训 28】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥猴子分桃…

二分法相关使用

文章目录 1. 在一个有序数组中,找某个数是否存在2. 在一个有序数组中,找大于等于某个数最左侧的位置3. 在一个有序数组中, 找小于等于某个数最右侧的位置4. 局部最大值问题 1. 在一个有序数组中,找某个数是否存在 在线OJ:704. 二分查找 有序数组下的二分思路如下:…
最新文章