Flask框架从入门到精通之参数配置(二)

知识点: 1、参数配置

一、概况

上一篇我们已经把Flask第一个程序运行起来了,那么这一篇主要讲一下Flask参数的配置。

二、配置参数

Flask参数配置方式有很多种,每一种都可以达到结果,在合适的场景选择合适的配置方式。

  • 配置文件 在文件加中新建一个config.cfg配置文件,在配置文件上写上下面语句,表示开启调试模式。这样当我们程序出错的时候,就能知道错误在多少行,方便我们快速定位错误。
DEBUG = True
复制代码

在程序中加载配置文件

from flask import Flask'''
__name__:表示当前的模块名字
创建Flask对象,Flask会以传入模块的位置当做家目录
'''
app = Flask(__name__)@app.route('/')  # 代表首页
def hello_world():  # 视图函数print(1/0)return 'Hello World!'  # 返回内容# 配置文件
app.config.from_pyfile('config.cfg')if __name__ == '__main__':app.run()  # 运行程序
复制代码

我们可以看出,这个程序是有错的,因为1/0在生活中,0是不能当做除数,所以会出现异常。当我们在浏览器访问的时候,可以看到

  • 类方式配置
#类方式配置
class Config(object):DEBUG = Trueapp.config.from_object(Config)复制代码
  • 直接操作配置 直接操作适用于配置参数较少的场景,config本质其实就一个字典。
#直接操作
app.config["DEBUG"] = True
复制代码
  • 对象上配置
app.debug = True
复制代码
  • 参数传入配置(只限debug参数)
app.run(debug=True)  # 运行程序
复制代码

三、取配置参数

有很多情况,我们会有需求,想在视图函数中,把配置参数取到并使用。这里面提供了两种拿到的办法:

from flask import Flask, current_app'''
__name__:表示当前的模块名字
创建Flask对象,Flask会以传入模块的位置当做家目录
'''
app = Flask(__name__)@app.route('/')  # 代表首页
def hello_world():  # 视图函数# 如果能拿到app对象,就可以通过app取自定义的配置参数print(app.config.get('TEST'))# 如果拿不到,可以通过current_app这个app的代理人拿到print(current_app.config.get('TEST'))return 'Hello World!'  # 返回内容# 直接操作
app.config["DEBUG"] = True
app.config["TEST"] = 'test'if __name__ == '__main__':app.run()  # 运行程序复制代码

支持外部访问

我们修改调用 run() 的方法使我们的服务器公开可用,如下:

 # 0.0.0.0代表任何能代表这台机器的地址都可以访问app.run(host='0.0.0.0', port=5000)  # 运行程序
复制代码

这个时候我们可以通过http://127.0.0.1:5000/可以访问我们的网站,也可以通过自己的本机ip去访问http://192.168.1.101:5000/。可以通过ifconfig命令查看自己的本机IP。

欢迎关注我的公众号:

转载于:https://juejin.im/post/5cb98975f265da03ae74bead

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

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

相关文章

BP神经网络python简单实现

BP神经网络的原理在网上有很详细的说明,这里就不打算细说,这篇文章主要简单的方式设计及实现BP神经网络,并简单测试下在恒等计算(编码)作测试。 BP神经网络模型图如下 BP神经网络基本思想 BP神经网络学习过程由信息的…

golang的reflection(转)(一)

2019独角兽企业重金招聘Python工程师标准>>> 反射reflection 可以大大提高程序的灵活性,使得interface{}有更大的发挥余地反射可以使用TypeOf和ValueOf函数从接口中获取目标对象信息反射会将匿名字段作为独立字段(匿名字段的本质)…

idea教程--Maven 骨架介绍

简单的说,Archetype是Maven工程的模板工具包。一个Archetype定义了要做的相同类型事情的初始样式或模型。这个名称给我们提供来了一个一致的生成Maven工程的方式。Archetype会帮助作者给用户创建Maven工程模板,并给用户提供生成相关工程模板版本的参数化…

datatables.js 简单使用--多选框和服务器端分页

说明:datatables是一款jQuery表格插件。感觉EasyUI的datagrid更易用 内容:多选框和服务器端分页 缘由:写这篇博客的原因是datatables的文档写的不怎么样,找东西很麻烦 环境:asp.net mvc , vs2015sqlserver2012 显示效…

python异常(高级) Exception

异常(高级) Exception 异常回顾:     try-except 语句 捕获(接收)异常通知,把异常流程变为正常流程     try-finally 语句 执行必须要执行的语句.     raise 语句 发送异常通知,同时进入异常流程     assert 语句 发送AssertionError异常     with 语句 wi…

反射赋值

目前例子为NPOI Excel导入 入库时调用 var file file1.PostedFile.InputStream;var fileExt System.IO.Path.GetExtension(file1.FileName);IWorkbook workbook;if (fileExt ".xlsx")workbook new XSSFWorkbook(file);elseworkbook new HSSFWorkbook(file);DB.D…

基于PCA(主成分分析)的人脸识别

代码下载:基于PCA(主成分分析)的人脸识别 人脸识别是一个有监督学习过程,首先利用训练集构造一个人脸模型,然后将测试集与训练集进行匹配,找到与之对应的训练集头像。最容易的方式是直接利用欧式距离计算测…

从BMW Vision iNEXT 看宝马如何进军自动驾驶

安全很重要,空间也要很大,砍掉大量物理按键,内饰材料要环保,还要提供自动和主动两套驾驶方案。这些描述仅是BMW Vision iNEXT(下称Vision iNEXT)概念车的设计之冰山一角。 一款概念车当然无法完全代表未来…

CSS浮动(二)---Float

重新认识float 2.1. 误解和“误用” 既然提到“误用”,各位看官就此想想,自己平日是怎么使用float的?另外,既然“误用”加了引号,就说明这样的使用并不是真正的误用,而是误打误撞使用之后,带…

Hadoop0.20.2版本在Ubuntu下安装和配置

1、安装JDK   (1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK   sudo apt-get install sun-java6-jdk   (2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容 …

云原生生态周报 Vol. 2

业界要闻 Kubernetes External Secrets 近日,世界上最大的域名托管公司 Godaddy公司,正式宣布并详细解读了其开源的K8s外部 Secrets 管理项目: Kubernetes External Secrets,简称KES。这个项目定义了ExternalSecrets API&#xff…

centos 7新机使用前操作

关闭防火墙 systemctl stop firewalld(停服务) systemctl status firewalld(看状态) systemctl disable firewalld.service (永久关闭) selinux getenforce(查状态) vi /etc/selinux…

ubuntu10.04+hadoop0.20.2平台配置(完全分布式模式)

配置环境及有关工具:ubuntu10.04 、hadoop0.20.2 、 jdk1.6.0_29 我们的机器有三台,一台当作namenode、两台当作datanode: namenode:IP:192.168.0.25、机器名:kiddenzj (这里的机器名要注意:机…

成佛、远不止渡沧海

地之及东南,有一海,称为“沧海”。沧海对面,就是仙家佛地。凡是能渡过沧海到达彼岸的人,就能立地成佛,修成正果。 于是,许许多多的人千里迢迢赶来,或乘帆船,或乘木筏,纷纷…

软件架构演进

传统架构到分布式架构详解 软件架构演进软件架构的发展经历了从单体架构、垂直架构、SOA架构到微服务架构的过程,博客里写到了这四种架构的特点以及优缺点分析,个人学习之用,仅供参考! 1.1.1 单体架构 特点:1、所有的…

hadoop0.20.0第一个例子

这是Hadoop学习全程记录第2篇,在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序。 新说明一下我的开发环境: 操作系统:在windows下使用wubi安装了ubuntu 10.10 hadoop版本:hadoop-0.20.2.tar.gz Eclipse版本&…

IDEA 修改JavaWeb的访问路径

问题描述 对于我这个刚刚使用IDEA不久的新手来说,能够正常运行就不错了,不过到了后面,可能会觉得IDEA给你分配的默认访问路径很不顺手,比如访问的时候需要通过: http://localhost:8080/web_war_exploded/ 来访问,对于web_w…

防撞库基本要求

专用安全要求 口令要求 设计要求说明 要求 是否满足 密码长度至少 8位字符,密码复杂性要求至少包含以下4种类别中的2种:大写字母、小写字母、数字、特殊符号 必选 满足 系统应具备对口令强度检测的能力,并对用户进行提示(尽量不要…

odoo10 继承(扩展)、模块数据

一:继承 在不改变底层对象的时候添加新的功能——这是通过继承机制来实现的,作为在现有对象之上的修改层,这些修改可以发生在所有级别:模型,视图和业务逻辑。不是直接修改现有模块,而是创建一个新模块以添加…

做一个vue的todolist列表

<template><div id"app"><input type"text" v-model"todo" ref"ip"/><button click"add()">新增</button><br/><br/><hr/><ul><li v-for"(item,key) in li…