安装Flask

pip install flask

一 .创建Flask项目

Flask与Django相比,没有提供任何自动创建项目的操作,所以需要手动创建项目及启动项目的管理文件

例如,创建项目目录demo,在目录中创建hello.py并启动该项目。

from flask import Flask

# 创建flask的应用对象
app = Flask(__name__,
static_url_path="/python",
static_folder="static2",
template_folder="demo",
) # 定义路由
@app.route("/")
# 定义视图
def index():
return "hello flask" if __name__ == '__main__':
# 启动项目
app.run()

访问视图函数

初始化参数说明

  • import_name:不可缺省。定义flask框架的跟目录。参数 __name__ 表示以当前模块所在目录为flask的根目录。若要指定其他目录为根目录传对应目录名即可。若指定的目录不存在,则默认以启动目录为根目录。
  • static_url_path:可缺省。访问静态资源的url前缀。若缺省,默认访问路径为static。
  • static_folder:可缺省。存放静态资源的目录名称。若缺省,默认目录名称为static。
  • template_folder:可缺省。存放模板文件的目录名称。若缺省,默认目录名称为templates。

访问静态资源

二、配置参数

2.1 启动配置参数

if __name__ == '__main__':
# 启动项目
app.run(host="192.168.3.110", port=9898, debug=True)

参数说明:

  • host:启动绑定的IP
  • port:启动绑定的端口
  • debug:是否开启debug模式,默认不开启。

2.2 配置参数的使用方式&自定义配置参数&读取配置参数

1、读取配置文件使用配置参数

app.config.from_pyfile("config.cfg")

2、直接操作config的字典对象使用配置参数

app.config["DEBUG"] = True
app.config["LANGUAGE"] = "Java"

3、定义Config类对象使用配置参数

class Config(object):
DEBUG = True
# 自定义配置信息。自定义的配置信息需大写,否则配置无效。
LANGUAGE = "python" app.config.from_object(Config)

上面3种配置方式中的LANGUAGE 为自定义配置参数,自定义的配置参数必须大写,否则无效。

不管是默认的还是自定义的配置参数均保存在 config 这个字典中,所以使用字典的取值方法均能读取配置参数。读取配置的方法有两种:

  • 从全局对象app的config字典中取值
  • 从current_app的config字典中取值
from flask import Flask, current_app

...

@app.route("/")
def index():
print(app.config)
# 读取配置参数
# 1、从全局对象app的config字典中取值
# language = app.config.get("LANGUAGE")
# 2、从current_app的config字典中取值
language = current_app.config.get("LANGUAGE")
return F"hello {language}"

from flask import Flask, current_app

# 创建flask的应用对象
app = Flask(__name__,
static_url_path="/python",
static_folder="static2",
template_folder="demo",
)
"""
import_name:不可缺省。定义flask框架的跟目录。参数 __name__ 表示以当前模块所在目录为flask的根目录。若要指定其他目录为根目录传对应目录名即可。若指定的目录不存在,则默认以启动目录为根目录。
static_url_path:可缺省。访问静态资源的url前缀。若缺省,默认访问路径为static。
static_folder:可缺省。存放静态资源的目录名称。若缺省,默认目录名称为static。
template_folder:可缺省。存放模板文件的目录名称。若缺省,默认目录名称为templates。
""" # 配置参数的使用
# 1、读取配置文件使用配置参数
# app.config.from_pyfile("config.cfg") # 2、直接操作config的字典对象使用配置参数
# app.config["DEBUG"] = True
# app.config["LANGUAGE"] = "Java" # 3、定义Config类对象使用配置参数
class Config(object):
DEBUG = True
# 自定义配置信息。自定义的配置信息需大写,否则配置无效。
LANGUAGE = "python" app.config.from_object(Config) @app.route("/")
def index():
print(app.config)
# 读取配置参数
# 1、从全局对象app的config字典中取值
# language = app.config.get("LANGUAGE")
# 2、从current_app的config字典中取值
language = current_app.config.get("LANGUAGE")
return F"hello {language}" if __name__ == '__main__':
# 启动项目
# app.run(host="192.168.3.110", port=9898, debug=True)
app.run()

Flask_安装和配置(一)的更多相关文章

  1. JDK安装与配置

    JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...

  2. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  3. 烂泥:redis3.2.3安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前一段时间写过一篇codis集群的文章,写那篇文章主要是因为当时的项目不支持redis自 ...

  4. mysql源码包手动安装、配置以及测试(亲测可行)

    笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...

  5. 环境搭建系列-系统安装之centos 6.5安装与配置

    按照国际惯例,系列目录先奉上: 系列一:系统安装之centos 6.5安装与配置 系列二:准备工作之Java环境安装 系列三:数据为先之MySQL读写集群搭建 系列四:谈分布式之RabbitMQ集群搭 ...

  6. ZooKeeper安装与配置

    一. 单机安装.配置: 1. 下载zookeeper二进制安装包下载地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.3/zookeeper-3 ...

  7. mac 下JDK 与 tomcat 的安装与配置

    一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK,在终端中输入java 或者 javac 显示说明,表明已经安装过JDK,JDK版本查询终端键入java -version,终端会返回JD ...

  8. 烂泥:zabbix3.0安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这个月又快过完了,最近也比较忙,没时间写文章,今天挤点时间把zabbix3.0安装与配置 ...

  9. Jenkins入门系列之——02第二章 Jenkins安装与配置

    2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...

随机推荐

  1. jquery:iframe里面的元素怎样触发父窗口元素的事件?

    例如父窗口定义了一个事件. top: $(dom1).bind('topEvent', function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢?这样吗? $(dom1, ...

  2. html如何让input number类型的标签不产生上下加减的按钮(转)

    添加css代码: <style> input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit- ...

  3. 【C/C++】学生排队吃饭问题

    问题: 有n个学生,学生们都在排队取餐,第个学生在L国时刻来到队尾,同一时刻来的学生编号小的在前,每个时刻当队列不为空时,排在队头的同学就可以拿到今天的中餐并离开队伍,若第个学生R团时刻不能拿到中餐, ...

  4. 『学了就忘』Linux启动引导与修复 — 72、Linux系统的修复模式(单用户模式)

    目录 1.单用户模式常见的错误修复 2.通过单用户模式修改系统密码 (1)进入grub启动引导程序中 (2)编辑相应的系统启动内容 (3)编辑grub配置文件内容 (4)启动系统 (5)修改root用 ...

  5. 记ByteCTF中的Node题

    记ByteCTF中的Node题 我总觉得字节是跟Node过不去了,初赛和决赛都整了个Node题目,当然PHP.Java都是必不可少的,只是我觉得Node类型的比较少见,所以感觉挺新鲜的. Nothin ...

  6. Kerberos认证

    http://www.cnblogs.com/artech/archive/2011/01/24/kerberos.html 最近一段时间都在折腾安全(Security)方面的东西,比如Windows ...

  7. 自定义函数(Power Query 之 M 语言)

    数据源: 任意工作簿 目标: 使用自定义函数实现将数据源导入Power Query编辑器 操作过程: PowerQuery编辑器>主页>新建源>其他源>空查询 编辑栏内写入公式 ...

  8. shiro验证时,当authenticationStrategy为AllSuccessfulStrategy时

    shiro验证时,当authenticationStrategy为AllSuccessfulStrategy时,如果某一个验证出错,那么 PrincipalCollection principalCo ...

  9. Vue-Router(一)

    Vue-Router(一) 简介 vue-router是Vuejs的官方推荐路由,让用 Vue.js 构建单页应用变得非常容易.目前Vue路由最新的版本是4.x版本. vue-router是基于路由和 ...

  10. DKT模型及其TensorFlow实现(Deep knowledge tracing with Tensorflow)

    今年2月15日,谷歌举办了首届TensorFlow Dev Summit,并且发布了TensorFlow 1.0 正式版. 3月18号,上海的谷歌开发者社区(GDG)组织了针对峰会的专场回顾活动.本文 ...