首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask从零到一 1 | 虚拟环境和第一个flask程序

Flask从零到一 1 | 虚拟环境和第一个flask程序

原创
作者头像
奶糖猫
修改2020-08-14 14:37:13
4840
修改2020-08-14 14:37:13
举报

大约还有二十天假期时间,这二十天我准备跟进一个Flask入门系列,大致会分为10-12篇文章。虽然我以后不想做开发,但是Web开发热度还是挺高的,所以就用了一段时间学习了一下,下学期也会有与Web有关的课程,如果对Flask感兴趣的话,可以持续跟进,希望这个系列可以帮到伙伴们。

第一篇主要包括两个方面,一方面是学习Flask之前的准备工作,比如配置相应的环境以及下载一些工具;另一方面就是编写第一个Flask简易程序。

Flask是支持Python2 和 Python3两个版本的,但是在我接触Python的时候已经更新到3.6了,所以我也没有关注Python2。我相信伙伴们应该也大多都在用Python3,所以这个系列会以Python3为基础,Flask的版本使用最新的即可。

这里只对Flask做一个简要的介绍:Flask是一个微框架,本身相当于一个内核,只保留了核心功能:请求响应处理和模板渲染。这两个功能分别有Werkzeug和Jinja实现,Flask本身也包装了这两个依赖,然后Flask还拥有很多扩展包,用户可以根据自己的需求导入扩展包实现相应的功能,这也是Flask框架灵活的原因。

Git下载

首先对于Windows用户,推荐下载Git这个工具,虽然很多功能我们在终端也可以实现,但在某些方面上讲使用Git的命令会更加方便,而且它也可以用来记录编写程序的源码和文件的变动情况,Git的下载安装教程可以参考这篇博客:Windows系统安装教程

下载安装完成之后,在搜索栏找到Git Bash,运行时候输入git --version,如果出现对应的版本信息则代表安装成功。

配置虚拟环境

虚拟环境是一种独立于Python全局环境的Python解释器环境,比如一个虚拟环境中的解释器版本可以为Python2,另一个的解释器版本可以为Python3,它们之间是不会相互干扰的,而且也不会受你电脑中Python环境的影响。

配置虚拟环境是很必要的操作,因为不同的程序依赖语言的版本可能会不同,但如果在一台电脑中下载多个版本Python解释器,就会导致全局环境杂乱,虚拟环境很好的解决了这个问题,也便于管理我们的程序。

Python3中内置的venv模块可以创建虚拟环境,首先在系统自带的cmd中通过cd指令进入到指定的文件中,需要注意的是这个路径不能包含中文,然后使用下面指令创建一个虚拟环境。

python -m venv env
在这里插入图片描述
在这里插入图片描述

其中env为虚拟环境的名称,可以自己拟定。这时会在当前目录下生成一个包含了Python解释器的虚拟环境文件夹,然后在Scripts文件下有两个.bat文件,这两个文件就控制着激活虚拟环境和退出虚拟环境。

通过下面指令就可以激活虚拟环境和退出虚拟环境:

env\Scripts\activate#激活
env\Scripts\deactivate#退出

或者也可以直接进入Scripts目录下直接输入activate或者deactivae即可,当目录前出现下面这种小括号形式就代表激活虚拟环境成功。

(env) 

然后就可以通过pip在虚拟环境中安装Flask,不用指定版本,默认安装最新版本。

 pip install flask

第一个flask程序

编写一个flask程序是非常简单的,仅仅几行代码就可以实现,流程大致可以分为以下五步:

  • 1、从flask包中导入Flask类#从flask包中导入Flask类 from flask import Flask #创建flask的应用对象 app = Flask(__name__) @app.route('/') def hello(): """定义视图函数""" return 'Hello NaiTangMao' if __name__ == "__main__": #启动flask程序 app.run()运行上面这段程序会给出下面的结果,我们先关注红字部分的网址,会发现这是我们本地主机的IP地址,在运行一个flask程序后,他会默认监听主机的5000端口。
  • 2、实例化Flask类,创建一个应用对象
  • 3、定义视图函数
  • 4、为视图函数添加装饰器(定义路由)
  • 5、启动flask程序
在这里插入图片描述
在这里插入图片描述

Copy一下网址利用浏览器打开就会出现我们视图函数中返回的信息:

在这里插入图片描述
在这里插入图片描述

这个flask程序处理过程如下:

  • 1、首先用户启动程序,并访问对应的网址。
  • 2、服务器解析请求,识别装饰器中绑定的URL。
  • 3、匹配URL并调用对应的视图函数。
  • 4、获取视图函数的返回值,返回至客户端。

对于上面这几行代码需要掌握几个知识点,首先你应该明确app为Flask类实例化后创建的一个应用对象,但里面的name有什么作用呢?

name为当前模块名,因为flask程序在运行的时候需要静态文件和模板文件辅助,在你设置name之后,flask就会以当前模块(文件)所在目录为根目录,默认这个目录中的static为静态目录,templates为模板目录,因为是默认存在的,所以在根目录中并不会体现出来。不理解不要紧,后面还会涉及这两方面知识。

视图函数暂时不需要过多介绍,需要注意的是视图上面的装饰器app.route(),这个装饰器可以为视图函数绑定一个URL,当用户访问这个URL时会触发对应的视图函数,其中'/'代表根地址,我们还可以在根地址后设置额外路径,比如app.route('/hello')。

这时如果我们在访问原来那个网址就会出现Not Found的错误提示,此时必须要访问http://127.0.0.1:5000/hello才能触发视图函数。

在这里插入图片描述
在这里插入图片描述

一个视图函数也可以同时绑定多个URL,这通过为视图函数添加多个装饰器实现:

@app.route('/')
@app.route('/hello')
def hello():
    """定义视图函数"""
    return 'Hello NaiTangMao'

也就是说现在不论我们访问http://127.0.0.1:5000/ 还是 http://127.0.0.1:5000/hello都可以触发这个视图函数。

综上为Flask入门系列的第一篇,主要介绍虚拟环境的配置以及简易flask程序构成部分的简要解析。

本文参考资料: 1.《Flask入门教程》.李辉著 2.https://www.bilibili.com/video/BV1yt4y1Q7k5?p=5

3.Flask中英文档

如果你对这个系列感兴趣,欢迎关注公众号【奶糖猫】第一时间跟进后续更新~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git下载
  • 配置虚拟环境
  • 第一个flask程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档