《Flask Web开发实战》第一章初识Flask——李辉,读书笔记

2023-05-16

目录

    • 第一章 初识Flask
      • 开发环境的搭建
        • 使用Pipenv管理Python包
      • hello Flask
      • 启动开发服务器
        • 修改默认的重载器
        • 修改配置参数
        • 实现类似flask run的命令的方式
    • 结尾

第一章 初识Flask

本章主要介绍了一些关于Flask开发的基本配置问题

开发环境的搭建

使用Pipenv管理Python包

使用pip、Pipflie和Virtualenv替换pip、virtualenv、requirements.txt。它让包安装、包依赖管理和虚拟环境管理更加方便,使用它可以实现高效的Python项目开发工作流。
安装

pip install pipenv

创建虚拟环境
进入项目的工作目录,使用如下命令,会生成一个python虚拟环境,虚拟环境名字是项目名+一串随机字符。

pipenv install

在项目工作目录下,使用如下命令激活环境

pipenv shell
# 使用如下两个命令可以退出环境
exit
deactivate

或者使用如下命令单次使用虚拟环境运行程序

pipenv run python temp.py

管理依赖
使用pipenv install在项目根目录下创建会生成Pipfile和Pipfile.lock,两个文件,前者记录依赖包,后者记录详细的依赖包列表情况
在新的环境下使用如下命令安装Pipfile文件中的包到新的虚拟环境中。

pipenv install
# 如果需要安装开发环境依赖包则需要如下命令,才会安装Pipfile中的dev-package部分
pipenv install --dev

想要安装包在虚拟环境中,最好使用pipenv install <包名>进行安装,会直接把包加到Pipfile中。
使用如下命令查看依赖包的依赖情况。

pipenv graph

hello Flask

对于简单程序而言,主模块一般命名为app.py

from flask import Flask
app = Flask(__name__)

在一个Web应用中,客户端和服务器上的Flask程序的交互可以简单概括为以下几步:
1、在浏览器中输入URL访问某个资源
2、Flask接收用户请求并分析URL
3、为URL找到处理函数
4、执行函数生成响应,返回浏览器
5、浏览器接收解析,展示页面
大部分都有Flask完成,使用app.route()装饰器,建立URL和函数之间建立关联。这个过程为 注册路由 ,这个函数成为 视图函数
在动态路由中设置默认值

@app.route("/greet", defaults={'name':'pro'})
@app.route("/greet/<name>")
def greet(name):
    return "<h1>hello %s!</h1>" % name

等价于

@app.route("/greet")
@app.route("/greet/<name>")
def greet(name='pro'):
    return "<h1>hello %s!</h1>" % name

启动开发服务器

从0.11开始,替代旧的app.run()的形式使用如下命令启动Flask

flask run

常用命令如下,默认生产环境,修改为开发环境后debug默认开启

export FLASK_APP=hello.py
export FLASK_ENV=development
flask run
# 或
flask run --host=127.0.0.1 --port=7000

自动寻找规则

  • 从当前目录寻找app.py和wsgi.py模块,寻找名为app或application的程序实例
  • 从环境变量FLASK_APP中寻找名app或application

修改环境变量,文件名为hello.py

# Linux或MacOS
export FLASK_APP=hello
# Windows
set FLASK_APP=hello

PyCharm进行运行配置修改,修改后点击右上角的图标进行运行和debug(不能右键debug),
Flask官网PyCharm配置
在这里插入图片描述
在这里插入图片描述

修改默认的重载器

默认使用Werkzeug的内置stat重载器,缺点好点,准确性一般(确实一般反应迟钝),替换另一个用于文件变动的库Watchdog。

pipenv install watchdog --dev

–dev是开发时候的依赖,只有在开发室用到。在Pipfile文件中添加到dev-packages部分。
浏览器如果有缓存某些文件使用,忽略缓存重载页面
强制刷新网页:Ctrl/Shift + F5

修改配置参数

配置文档地址:http://flask.pocoo.org/docs/latest/config
使用update修改单个、多个值:

app.config['TESTING'] = True
app.config.update(
    TESTING=True,
    SECRET_KEY=b'_5#y2L"F4Q8z\n\xec]/'
)

还可以把配置变量存储在单独的 Python 脚本、JSON 格式的文件或是 Python类中, config 对象提供了相应的方法来导人配置。

实现类似flask run的命令的方式

flask中的click:https://flask.palletsprojects.com/en/1.1.x/cli/#custom-commands

click官方文档: https://click.palletsprojects.com/

结尾

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Flask Web开发实战》第一章初识Flask——李辉,读书笔记 的相关文章

  • E-96系列电阻值代号对照表

    1 说明 2 E 96系列电阻值代号对照表 E 96系列 标准阻值表阻值代码阻值代码阻值代码阻值代码阻值代码阻值代码1001X10001A1 00K01B10 0K01C100K01D1M01E10 202X10202A1 02K02B10
  • Altium Designer10铺铜技巧小结

    目录 1 铜皮操作分类 2 铺铜技巧 2 1 过孔处理 2 1 1 过孔与绿油 2 1 2 过孔的十字连接与直接连接 2 2 设置灌铜安全间距 xff08 Clearance xff09 2 3 设置空心灌铜 2 4 调整灌铜形状 2 5
  • 基于MFC的USB上位机开发(3)数据传输模块

    延伸阅读 基于MFC的USB上位机开发 1 概述 基于MFC的USB上位机开发 2 速度测试模块 基于MFC的USB上位机开发 3 数据传输模块 基于MFC的USB上位机开发 4 环路模块 基于MFC的USB上位机开发 5 下环路模块 目录
  • 虚拟现实的起源、发展、爆发与沉淀

    虚拟现实的三生三世 闲来无事翻篇外文 xff0c 本博主并非故意蹭热点 xff08 奸笑 xff09 xff0c 结尾我会细说为何是三生三世 xff0c 不是五生五世 xff1a 虚拟现实远早于这个概念被创造和形式化之前 在这篇描写虚拟现实
  • 基于卷积的密度统计(一)密度图的生成

    在基于卷积的人数统计中 xff0c 一种是最后回归整张图的人数 xff0c 即输入图像 xff0c 输出人群个数 xff0c 另外一种是回归人群分布密度图 xff0c 即输入图像 xff0c 得到的是密度分布 显然得到密度分布的人数统计方法
  • Python使用国内镜像

    国内镜像地址 xff1a 阿里云 xff1a https mirrors aliyun com pypi simple 清华 xff1a https pypi tuna tsinghua edu cn simple中国科技大学 https
  • [RK3568 Android11] 开发之蓝牙(AP6275S)

    目录 前言 一 设备树dts配置 二 蓝牙打不开 三 蓝牙打开成功 四 修改蓝牙设备名称
  • XFCE菜单列表

    vim etc xdg xfce4 panel xfce4 menu 19 rc use default menu 61 true menu file 61 etc xdg menus xfce applications menu icon
  • X的DISPLAY=:0.0

    ZZ http blog 163 com caizf1987 64 126 blog static 13212128020104611592660 在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面
  • 国外服务器上玩游戏延迟很高,什么原因造成的?

    在国外服务器玩游戏为什么延迟很高 有的比较热门的国际游戏 xff0c 为了玩家通常都会将整个游戏的区服划分为亚服 欧服 美服 东南亚服 韩服等等 xff0c 这主要是为了玩家有个良好的游戏体验 xff0c 那为什么在外服 国外服务器 上玩游
  • 公司抽奖小程序(自定义名单,空格控制滚动、抽奖,可作弊,可满足千人团队, 带可执行程序下载及源代码)

    内含 抽奖小程序 及 名单生成工具 使用时将两个小程序放在 同一目录下 先用名单生成工具生成名单 打开工具 按照提示输入要创建的参与抽奖的人数 输入每个人的编号及姓名 每行一个编号 空格 姓名 打开程序 复制粘贴即可 先用excel或者tx
  • 大厂面试之JAVA核心技能:Slipped Conditions

    聊聊Splipped Condtion 定义一个更现实的例子解决Slipped Conditions问题 定义 所谓Slipped conditions xff0c 就是说 xff0c 从一个线程检查某一特定条件到该线程操作此条件期间 xf
  • 一文带你彻底搞懂Docker中的cgroup

    前言 进程在系统中使用CPU 内存 磁盘等计算资源或者存储资源还是比较随心所欲的 xff0c 我们希望对进程资源利用进行限制 xff0c 对进程资源的使用进行追踪 这就让cgroup的出现成为了可能 xff0c 它用来统一将进程进行分组 x
  • 一文彻底搞懂Docker中的namespace

    什么是namespace namespace是对全局系统资源的一种封装隔离 这样可以让不同namespace的进程拥有独立的全局系统资源 这样改变一个namespace的系统资源只会影响当前namespace中的进程 xff0c 对其它na
  • 带你玩转多进程编程(一)

    前言 之前用加法器的例子一文带你轻松掌握多种范式讲解了多种范式的封装差异得到了很多童鞋的阅读 这次我再通过对进程的封装来给大家继续加深讲解下关于这几种编程范式的差异吧 结构化设计 相对于pthread create 函数 xff0c for
  • 【网易面试题】如何实现一个线程安全的shared_ptr智能指针

    题目描述 网易一面遇到过这么一个题目 xff0c 面试官要求自己实现一个线程安全的shared ptr智能指针 题目分析 可能很多人只知道shared ptr是C 43 43 11模块库的头文件定义的一个智能指针 xff0c 即shared
  • Ubuntu命令行安装Teamviewer

    1 预备安装 更新32位架构 sudo dpkg add architecture i386 更新安装 sudo apt get update 2 使用deb安装 官网下载 xff1a https www teamviewer com en
  • 阿里云数据湖分析急招实习生

    团队介绍 OSS 对象存储的概念可能对很多同学相对比较陌生 xff0c 但其实和大家紧密相关 xff0c 因为整个阿里集团业务以及阿里云外部客户的视频 图片 JS和CSS等资源全部都存储在我们这里 xff0c 可以说国内每天使用互联网应用的
  • 源码剖析Redis中如何使用跳表的

    前言 阿里云今年春招校招面试题 xff0c 面试官问Redis在是如何使用跳表的 xff1f 让很多同学赶到很头疼 今天我们就来讲一讲吧 Sorted Set的结构 redis的数据类型中有序集合 xff08 sorted set xff0
  • 多进程生产者消费者框架设计

    前言 介绍了进程如何基于面向对象的封装 xff0c 本章我们基于封装好的Process类来实现一种无锁版的生产者和消费者框架 xff0c 用它实现了高性能文件拷贝功能 读这篇文章之前大家可以想一下如果是你 xff0c 你会怎么设计这样的框架

随机推荐

  • golang实现简单rpc调用

    RPC通信过程 RPC的通信过程网上介绍很多 xff0c 这里就不在单独介绍了 xff0c 具体过程如下 xff1a 1 Client以本地调用的方式发起调用 xff1b 2 Client stub收到调用后负责将被调用的方法名 参数等打包
  • 一文彻底搞懂leveldb架构

    leveldb leveldb是一个写性能十分优秀的存储引擎 xff0c 是典型的LSM tree的实现 LSM的核心思想是为了换取最大的写性能而放弃掉部分读性能 那么 xff0c 为什么leveldb写性能高 xff1f 简单来说它就是尽
  • flink核心之watermarker

    背景介绍 xff1a 现在的社会 xff0c 人们产生越来越多的数据 xff0c 而数据对每个人人都产生了巨大的影响 比如你去银行贷款 xff0c 那么必然银行要对你做信用评估 xff0c 会涉及到大数据画像等数据分析 比如美团外卖 xff
  • 我在华为度过的 “两辈子”(学习那些在大厂表现优秀的人)

    七 是一个很神奇的数字 生物学中认为组成身体的细胞 xff0c 七年会彻底更新一遍 xff1b 李笑来说 xff0c 七年就是一辈子 xff0c 每一辈子至少要习得一个重要的技能 xff0c 进而获得不可逆的重生 xff1b 白居易写道 x
  • 【Effective Java】大厂实战之考虑以静态工厂方法代替构造方法

    图片 Item1 考虑以静态工厂方法代替构造方法 Item1 考虑以静态工厂方法代替构造方法 缺点1 只提供静态工厂方法的话 xff0c 该类就无法被继承 xff08 子类化 xff09 缺点2 API的查找比较麻烦 常见静态工厂方法的命名
  • 一文搞懂leveldb写操作

    前言 leveldb一直也它优秀的写性能而文明 xff0c 本篇文章我们就来分析下leveldb的写流程 来搞懂为什么它的写性能如此优秀 整理流程 leveldb一次写入分为两部分 xff1a 第一步先将写操作写入日志 第二步将写操作应用到
  • 来聊聊对象文件网关和分布式文件存储的区别

    前言 大家都知道 xff0c 存储系统一般分为块存储 对象存储和文件存储三种 其中文件存储的使用最广泛 xff0c 个人电脑 NAS 大到传统的HPC 大数据平台等等 这些都是以使用文件接口为主 最近几年 xff0c 由于成本低 存储空间大
  • Ubuntu中文件属性以及所属用户问题

    1 xff0c 查看文件属性 xff0c 命令如下 xff1a 查看当前目录下某个文件属性 ls l lt file name gt 查看当前目录下文件属性 ls l 查看所有当前文件下属性 ls al 在开始的 rwxr xr x 为该文
  • Android8.0 屏幕旋转180度

    一般手机只能旋转3个方向 xff0c 这里将介绍如何让手机可以旋转180度 xff0c 也就是上下颠倒 1 静态方法 frameworks base core res res values config xml config allowAl
  • 深度理解go中的Map

    这里写自定义目录标题 前言map的内存模型增量扩容查找过程分析插入过程分析 前言 本篇将从底层讲解map的赋值 删除 查询 扩容的具体执行过程 结合源码 xff0c 让你彻底明白map的原理 map的内存模型 在源码中 xff0c 表示ma
  • 在职场我们该具备哪些能力

    专才or 通才 不知道大家有没有这样的感觉 xff0c 现在的工作专业化程度越来越高 xff0c 细分粒度也越来越小 IT领域分到你是计算里面的数据库或者了流式计算引擎 xff0c 或者是协议存储还是KV存储引擎 专业化的程度带来了一个好处
  • 【zabbix Java开发教程】docker部署zabbix及api获取实战教程

    文章目录 Docker安装移除旧版本的docker环境安装必要系统工具添加源信息更新yum缓存安装Docker ce 启动Docker测试运行hello world 修改源 Docker部署zabbix创建zabbix的MySQL运行zab
  • go版本分布式锁redsync使用教程

    redsync使用教程 前言redsync结构Pool结构Mutex结构acquire加锁操作release解锁操作 redsync包的使用 前言 在编程语言中锁可以理解为一个变量 xff0c 该变量在同一时刻只能有一个线程拥有 xff0c
  • Fragment实例精讲——底部导航栏的实现(3)

    转自 xff1a http www runoob com w3cnote android tutorial fragment demo3 html 本节引言 前面我们已经跟大家讲解了实现底部导航栏的两种方案 xff0c 但是这两种方案只适合
  • Android NavigationBar 背景设置成完全透明不起作用

    lt item name 61 34 android navigationBarColor 34 gt 64 android color transparent lt item gt 使用 android navigationBarColo
  • 计算机视觉CV中RANSAC算法的学习笔记~

    1 致谢 感谢网友叶晚zd的博客 xff0c 原文链接如下 xff1a https blog csdn net u013925378 article details 82907502 2 RANSAC算法介绍 随机抽样一致算法 xff08
  • 【Java】JsonArray用法

    1 解析字符串为JsonArray JSONArray jsonArray 61 JSONArray parseArray str 2 存值 jsonArray add object 3 取值 for int i 61 0 i lt jso
  • 怎么用JMeter写性能测试脚本

    JMeter 可能是应用最广泛的性能测试工具 怎么用 JMeter 编写性能测试脚本 xff1f 一 脚本制作原则 我们一般写代码 xff0c 都会有代码规范 xff0c 比如写java有java规范 xff0c 写python有pytho
  • Android MVP Contract分析

    相关文章 xff1a Android MVP Contract 谷歌官方MVP Contract分析 View 只处理UI及页面效果的细节 xff0c 向Presenter暴露更新UI的方法 xff1b 并且持有Presenter的引用 x
  • 《Flask Web开发实战》第一章初识Flask——李辉,读书笔记

    目录 第一章 初识Flask开发环境的搭建使用Pipenv管理Python包 hello Flask启动开发服务器修改默认的重载器修改配置参数实现类似flask run的命令的方式 结尾 第一章 初识Flask 本章主要介绍了一些关于Fla