Flask框架基础1

 最基本框架代码

from flask import Flask
'''
实现Flask基本程序
步骤:1 导入Flask类2 创建Flask类的实例对象3 定义路由和视图函数4 启动服务器'''
app=Flask(__name__)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':app.run()

运行结果:

配置对象

1 从配置对象中加载

from flask import Flask
#配置文件加载;字典形式存储配置信息
#三种形式
#1 从配置对象中加载
class DefaultConfig(object):MYSQL_URL='mysql address'REDIS_URL='redis address'app=Flask(__name__)
# 获取配置对象的配置信息
app.config.from_object(DefaultConfig)@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()

 运行结果:

2 从配置文件中加载

from flask import Flask#配置文件加载;字典形式存储配置信息
#三种形式
#2 从配置文件中加载app=Flask(__name__)
# 获取配置文件的配置信息
app.config.from_pyfile('settings.py')@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息print(app.config.get('SECRET_KEY'))return 'hello world'if __name__=='__main__':app.run()

 运行结果:

 

这种方法的配置文件可以不是py文件,而且例如可以把文件桌面上,如ini格式文件专门存放配置信息 

 

 

3 从环境变量中加载

from flask import Flask#配置文件加载;字典形式存储配置信息
#三种形式
#2 从配置文件中加载
#3 从环境变量中加载app=Flask(__name__)
# 获取配置文件的配置信息,可以加载不是py格式的文件
# ini初始化文件,里面保存的是配置信息
# app.config.from_pyfile('settings.ini')
app.config.from_envvar('SET')@app.route("/")
def hello():#config是Flask中自带的配置对象,保存了程序的配置信息# print(app.config.get('SECRET_KEY'))#从环境变量文件中获取配置信息print(app.config.get('SECRET_KEY'))return 'hello world'if __name__=='__main__':app.run()

 

设置环境变量并且设置配置文件路径

第一种配置方法 

#demo2_config.py
from flask import Flask
from set import DefaultConfig,ProductionConfigapp=Flask(__name__)
app.config.from_object(DefaultConfig)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':app.run()
#set.py
class DefaultConfig(object):MYSQL_URL='mysql address'REDIS_URL='redis address'
# 定义其他模式下的配置信息,生产模式,开发模式
class ProductionConfig(DefaultConfig):MYSQL_URL='production mysql address'REDIS_URL='production redis address'

实际项目中用法(第一种和第三种) 

#demo3_project.py
from flask import Flask
from set import DefaultConfig, ProductionConfigdef create_app(config_name):app=Flask(__name__)app.config.from_object(config_name)return appapp=create_app(DefaultConfig)@app.route("/")
def hello():print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()#demo3_project.py
from flask import Flask
from set import DefaultConfig, ProductionConfigdef create_flask_app():app=Flask(__name__)app.config.from_envvar('SET',silent=True)return appdef create_app(config_name):app=create_flask_app()app.config.from_object(config_name)return appapp=create_app(ProductionConfig)@app.route("/")
def hello():print(app.config.get('MYSQL_URL'))print(app.config.get('REDIS_URL'))return 'hello world'if __name__=='__main__':app.run()

 设置run方法

from flask import Flaskapp=Flask(__name__)@app.route("/")
def hello():return 'hello world'if __name__=='__main__':'''run函数可以传入参数debug等于True表示可以自动跟踪代码的变化,定位错误信息host/port'''# app.run()# app.run(debug=True)app.run(port=5001)

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

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

相关文章

独立app开发和运行(使用篇)

1.概述 bcos支持动态加载APP任务到内存中执行,用户应用程序只要调用bcos提供的系统调用就可以实现自己的APP功能。当然,APP的开发需要遵循一些bcos自己的规则。 2.创建工程 keil按照你熟悉的方式创建一个空的工程,按照下面配置: C/C++页面,按照红框中的字符串配置,主要…

开发一个看番app[樱花动漫移动端app]

使用react-native开发,功能: 支持看番支持历史记录浏览支持追番 项目地址: https://github.com/HGGshiwo/Sakura 界面: 首页分类用户界面播放界面历史记录搜索界面全部动漫追番

科研人体验gpt

https://greengpt.app/ 安利一下这个非官方网站,内地可以免费访问使用GPT。免费并且不需要翻Q。 本篇主要介绍第一次体验GPT的感受,首要想法是做markdown,便于之后复习查阅。 首先,查阅了相关资料,官方渠道需要注册。找…

硬编码支持情况(一)

硬编码支持情况(一) 图片信息原文链接:http://trac.ffmpeg.org/wiki/HWAccelIntro 截个图: 注: (一):Intel 平台 1:Intel 平台的Quick Sync Video(qsv)是对于音视频编…

宏景eHr 手机App应用二次开发(图文)

应用宏景eHr软件,其中将hr与通达OA进行了组织结构和人员信息的数据同步开发。 在后续的使用过程中,需要使用到手机App,但是宏景的app是完全按照应用的用户数来计费,这样算下来如果使用员工自助的话会是一笔不小的费用。 通过对系…

技巧|你的微信|QQ授权了多少网站与APP?查完吓一跳啊!

编辑|排版| 宅哥技术转载请联系商务合作给你开白名单来源:宅哥技术(zg_jishu) ---------♥--------- 前言 相信很多朋友都有在用QQ或者微信快捷登录某些应用或网站,每次的授权我们都没在意,但是…

[EF]事务管理+批量删除

using (var transaction context.Database.BeginTransaction()){try{ //删除合同主表信息FAContract fa GetFAContract();context.Entry(fa).State EntityState.Deleted;//删除合同子表var query (from fad in context.FAContractDetail where fad.FACID fa.ID …

python将图片base流保存为图片文件

python将图片base流保存为图片文件。 #!/usr/bin/python # -*- coding: UTF-8 -*- """ author: Roc-xb desc: 将图片base流保存为图片文件 """ import base64if __name__ __main__:source_img "data:image/jpg;base64,/9j/4AAQSkZJRgABAQ…

Flutter AppBar 简述

AppBar AppBar 显示在app的顶部,或者说 顶端栏,对应着 Android 的 Toolbar。如下图: 一个AppBar 的基本组成 1 只有标题 无其他按钮 Widget buildDefaultBar(String title) {return appBar AppBar(//标题居中显示centerTitle: …

什么是JIT

1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。 2、JIT编译(just-in-time compilation)狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即…

搜索功能全流程解析

在产品中一般会分布着大大小小的搜索,以便提升用户的信息获取效率和信息消费的能力。本文作者全流程角度,对搜索功能进行了讲解,并从搜索流程中寻找提升体验的触点,一起来看一下吧。 在产品中因多功能诉求和业务复杂性等因素&…

Java面试题复习(1)

目录 1.mysql使用innodb引擎,请简述mysql索引的最左前缀,如何优化order by语句 2.在JVM内存模型中,为什么要区分新生去和老年代,对于新生代为什么要区分eden区和survial区? 3.常见的远程调用有几种 4.对于外部衔接的…

微信闪退Bug罪魁祸首竟是二维码引擎,附源代码分析

建议别尝试:转发这个二维码到群里,3秒后你会回来骂我(抖m求骂) 近日,网传微信识别上方二维码就会出现闪退BUG,小编也忍不住尝试了一下,果然,一识别该二维码微信立马就出现了闪退的现…

浅谈大模型时代的后台技术发展

1、前言 随着互联网的快速发展,大数据、人工智能、大模型等技术的兴起,大模型时代已经到来,也让后台工程面临着新的挑战和机遇: 大模型时代下,AI 对后台的计算能力和存储能力提出了更强要求,以满足更高的性…

陆奇最新演讲全文实录、完整PPT和视频:大模型带来的新范式

本文约34000字,建议阅读20分钟 陆奇博士以“新范式”为核心,分享了他对当前技术变革的观点。 面临一场快速到来的技术变革,比较有效的方法是去剖析:事物的内在结构,它的发展体系;什么是稳定不变的&#xff…

GPT上车只为人车交互?车企还在憋大招

ChatGPT改造汽车的序幕已经拉开,奔驰率先出手。 不久前,梅赛德斯-奔驰将ChatGPT集成到了车机上,开启了为期三个月的测试,结果显示,它的语音助手不仅可以完成简单地指令,还能进行连续多轮对话,理…

【Bard vs. GPT-4】谷歌一雪前耻!全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化

在人工智能领域,自然语言处理一直是一个备受关注的领域。近日,谷歌发布了全新的PaLM 2,这一新技术一经问世,就引起了广泛的关注。 【更多阅读】 Google I/O 2023 全球开发者大会 Reveal Event_禅与计算机程序设计艺术的博客-CSDN博客 【人工智能】谷歌的巴德聊天机器人向公…

亚马逊Q4利润下滑98%/ 盖茨:ChatGPT意义不亚于互联网诞生/ ICLR 2023放榜… 今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好,今天是2月3日,星期五。 喜欢下班的打工人们,今天可以喜提本周第七次(也是最后一次)下班了! 来跟日报君看看科技圈的今日大事吧。 ICLR 2023放榜&#xff…

抖音究竟对线下生意有没有价值?

👆戳上方增长黑盒Growthbox点亮星标⭐深度研究不错过! 主笔:邹小困 研究员:彬超、Emma 出品:增长黑盒研究组 01 防火防盗防抖音 互联网世界的后起之秀字节跳动,如同进击的巨人,在短短几年内就已…