Pyhon Flask框架:第一个Flask程序
作者:霖hero 发布时间:2023-01-09 16:06:34
Flask框架介绍
Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架,其本身相当于一个内核,其他几乎所有的功能都要用到扩展,都需要第三方的扩展来实现。
其WSGI工具箱采用Werkzeug(路由模块),模板引擎则使用Jinja2,这两个也是Flask框架的核心,它们分别负责业务处理和安全方面的功能。其中:
Werkzeug库:支持URL路由请求集成,一次可以响应多个用户的访问请求;支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Javascript调试,提高用户体验;可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。
Jinja2库:支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击。
Flask框架的作用
那么Flask框架的作用是什么呢?
Flask是一个Web框架,它的作用主要是为了开发Web应用程序,Web大家应该都了解,就是网页,所以我们学完了Flask就可以自己写个小网站了。
除了Flask框架,Python还有很多web框架,例如Django,Tormado框架等,其中最出名的框架是Django,最灵活的框架算是Flask。
Flask框架常用扩展包
刚才说了,Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展,都需要第三方的扩展来实现。
那么它常有的扩展包有哪些呢?
Flask-SQLalchemy:操作数据库;
Flask-script:插入脚本;
Flask-migrate:管理迁移数据库;
Flask-Session:Session存储方式指定;
Flask-WTF:表单;
Flask-Mail:邮件;
Flask-Bable:提供国际化和本地化支持,翻译;
Flask-Login:认证用户状态;
Flask-OpenID:认证;
Flask-RESTful:开发REST API的工具;
Flask-Bootstrap:集成前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和时间;
Flask-Admin:简单而可扩展的管理接口的框架。
创建Flask项目
简单地了解了Flask框架是什么,其作用是什么,现在我们开始创建一个Flask框架项目,这里我们推荐用PyCharm,不要问为什么,问就是方便、好用。
首先打开PyCharm,创建我们第一个Flask项目,如下图所示:
一般情况下,我们只需要修改一下项目名和选择Python编译器即可点击Create,点击后,我们再点击This Window,这样我们就成功创建了一个Flask框架项目,如下图所示:
其中:
static是静态文件夹,里面可以放js,css等文件;
templates是模板文件夹;
venv是虚拟环境文件夹,里面放着我们pip安装的库和一些模块、包;
app.py是启动程序。
创建完项目后,我们查看当前项目已经安装了哪些包,执行代码如下:
pip list
执行结果如下图所示:
每个人执行的结果可能不一样,可能会少了或多了一两个包,但没关系,当我们需要的时候,再去安装即可。
app.py介绍
接下来我们来介绍一下app.py,其文件内容如下:
from flask import Flask
#创建Flask的实例对象
app = Flask(__name__)
#装饰器
@app.route('/')
def hello_world():
#视图函数
return 'Hello World!'
if __name__ == '__main__':
app.run()
其中:
1.导入Flask模块,该类的实例将会成为我们的WSGI应用;
2.创建一个该类的实例,该实例可以传递以下参数:
1、__name__是一个适用于大多数情况的快捷方式,有了这个参数, Flask 才能知道在哪里可以找到模板和静态文件等东西;
2、static_url_path: 访问静态资源的url前缀
3、static_folder: 默认‘static'
4、template_folder: 默认‘templates'
3.使用route()装饰器来告诉Flask触发函数的URL ;
4.视图函数返回需要在用户浏览器中显示的信息;
5.app.run()启动一个web服务器来运行我们的程序。
运行Flask程序
我们先什么都不做,运行一下代码,试试它会出现什么。
有两种运行方法,一种是直接运行,另一种是在Terminal里面运行。
直接运行,运行结果如下:
FLASK_APP = app.py
FLASK_ENV = development
FLASK_DEBUG = 0
In folder C:/Users/LIN/Desktop/Flask开发
C:\Users\LIN\Desktop\Flask开发\venv\Scripts\python.exe -m flask run
* Serving Flask app 'app.py' (lazy loading)
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在Terminal里面运行,运行结果如下图所示:
这两种运行方式主要是Environment结果不同,但也差不多,因为在Terminal里面运行中,会有个WARNING警告,告诉我们这是一个开发服务器,不要在生产部署中使用它。
我们点击http://127.0.0.1:5000/就会弹出一个浏览器,如下图所示:
那么我们就要思考,为什么点击这个网址就会弹出Hello World!,而不是弹出其他呢。
来源:https://blog.csdn.net/weixin_52122271/article/details/120718703
猜你喜欢
- 项目地址:https://github.com/PythonerKK/django-generate-pdf/tree/master这个de
- CSSer与其他IT职位一样,在找工作的时候,都会面临着面试官提出的问题,或者给出的试卷。一、超链接点击过后hover样式就不出现的问题?被
- 对象:是抽象的概念 如列表 元组 字典 集合 皆为对象序列化:一种方法。目的:把对象存储在磁盘上(即,将对象转换为字节数据/字符数据)。这一
- MySQL GUI工具很多,本文就常用的Navicat for MySQL与MySQL-Front的特色功能做一个详细介绍与比较。(一)My
- 用命令创建Django项目1.将磁盘切换为D盘2.在D盘的路径下创建Django项目创建项目应用3.最后显示新建index文件夹启动项目1.
- 本文实例讲述了Python基于递归实现电话号码映射功能。分享给大家供大家参考,具体如下:问题电话按键上面的每个数字都对应着几个字母,如果按下
- 此代码适合你做网站用,普通朋友可以不用理这个东西!ASP:<%dim objXMLHTTP, qq, pwd qq = &
- Python操作注册表步骤之1.打开注册表对注册表进行操作前,必须打开注册表。在Python中,可以使用以下两个函数:RegOpenKey和
- 在最近一个项目中,表单验证需要对时间的起止范围进行判断:结束时间需大于或等于开始时间。即:结束年须大于起始年;如果相等,则比较起始月与结束月
- 在爬虫百度地图的期间,就为它做了一个界面,运用的是PyQt5。得到意想不到的结果:# -*- coding: utf-8 -*-# Form
- 前言想要使用摄像头实现一个多人姿态识别环境安装下载并安装 Anaconda官网连接 https://anaconda.cloud/insta
- 如果直接使用base64_encode和base64_decode方法的话,生成的字符串可能不适用URL地址。下面的方法可以解决该问题:UR
- (一)原理 小偷程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻小偷程序,
- 错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题,当然附加的时候必须是有数据库附加权限才可以操作的。解决办法1:给相应
- 这个问题非常非常重要,搞了一晚上都没解决好,但是真的很简单很简单, 如果你也 是用的numpy array, 如果你也想得到输出矩阵的全部内
- 交待:使用的软硬件环境为Win XP SP2、SQL Server 2000 SP2个人版、普通双核台式机、1000M局域网,A机为已使用的
- javascript作为一个动态语言,动态解析脚本的方法非常多,如万恶又万能的eval,低调的Function,IE独占的execScrip
- asp禁止站外盗链,站外提交方法、以及asp判断星期几方法.防盗链,主要通过判断上一页面来源是否是本站来实现的,不是本站的链接就
- xmlhttp,IE不支持overrideMimeType()方法,即使是IE7。 // Mozilla/Safari/
- 本文中的示例主要是解决在函数间不能传递多个(32个以上)参数的问题,解题的具体思路就是采用记录类型作为函数的输入和返回值,所以我们需要先定义