Flask快速开发Web应用:入门到精通必备知识

Flask是一个基于Python的轻量级Web框架,它具有简单易用、灵活可扩展等特点,非常适合用于小型Web应用开发。下面是关于Flask的基础知识的讲解。

安装和配置 Flask 环境

在安装Flask之前,需要确保已经安装了Python环境。可以通过以下命令检查是否已经安装了Python:

python --version
1.

如果没有安装Python,可以从官网下载对应的安装包进行安装。

安装Flask可以使用pip命令,在命令行中输入以下命令:

pip install Flask
1.

安装完成之后,就可以在Python中使用Flask了。

Hello, World! – Flask 的第一个应用

在学习任何框架之前,通常都会编写一个Hello, World!的示例程序,Flask也不例外。下面是一个简单的Hello, World!程序:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'
1.2.3.4.5.6.7.

上面的代码首先导入了Flask库,然后创建了一个Flask应用实例,并定义了一个路由/,对应的视图函数为hello()。在hello()函数中,返回了一个字符串“Hello, World!”。

要运行这个程序,需要在终端中运行以下命令:

export FLASK_APP=hello.py
flask run
1.2.

这里的hello.py是程序的文件名。运行以上命令后,就可以在浏览器中访问http://127.0.0.1:5000/,看到“Hello, World!”的输出。

Flask 的请求和响应机制

在Flask中,请求和响应是核心概念之一。每次客户端发送请求时,都会创建一个Request对象。这个对象包含了客户端发送的所有信息,如HTTP方法、请求头、请求数据等。

在视图函数中,可以通过request对象获取请求的数据。例如,可以通过request.method属性获取HTTP方法,通过request.form属性获取表单数据,通过request.args属性获取查询字符串数据等。

当视图函数返回响应时,会创建一个Response对象。这个对象包含了要发送给客户端的所有信息,如响应状态码、响应头、响应数据等。

在视图函数中,可以通过return语句返回响应数据。例如,可以返回一个字符串、一个字典或一个模板等。Flask会自动将返回值封装成一个Response对象并发送给客户端。

Flask 的路由和视图函数

路由是指根据URL地址来匹配视图函数的过程。在Flask中,可以使用route()装饰器来定义路由。这个装饰器接收一个字符串参数,用于指定路由的URL地址。

下面是一个示例:

@app.route('/hello')
def hello():
    return 'Hello, World!'
1.2.3.

这个示例中,定义了一个路由/hello,对应的视图函数为hello()。当客户端访问/hello时,就会调用hello()函数并返回“Hello, World!”字符串。

视图函数是指处理请求并返回响应的函数。在Flask中,可以使用route()装饰器来定义视图函数。这个装饰器可以接收多个参数,其中最重要的一个参数是methods,用于指定视图函数允许处理的HTTP方法。

下面是一个示例:

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password'].markdown-body pre,.markdown-body pre>code.hljs{color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built\_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}

Flask是一个基于Python的轻量级Web框架,它具有简单易用、灵活可扩展等特点,非常适合用于小型Web应用开发。下面是关于Flask的基础知识的讲解。

安装和配置 Flask 环境
--------------

在安装Flask之前,需要确保已经安装了Python环境。可以通过以下命令检查是否已经安装了Python:

python --version
1.


如果没有安装Python,可以从官网下载对应的安装包进行安装。

安装Flask可以使用pip命令,在命令行中输入以下命令:

pip install Flask
1.


安装完成之后,就可以在Python中使用Flask了。

Hello, World! -- Flask 的第一个应用
-----------------------------

在学习任何框架之前,通常都会编写一个Hello, World!的示例程序,Flask也不例外。下面是一个简单的Hello, World!程序:

from flask import Flask

app = Flask(name)

@app.route(‘/’)
def hello():
return ‘Hello, World!’
1.2.3.4.5.6.7.


上面的代码首先导入了Flask库,然后创建了一个Flask应用实例,并定义了一个路由/,对应的视图函数为hello()。在hello()函数中,返回了一个字符串“Hello, World!”。

要运行这个程序,需要在终端中运行以下命令:

export FLASK_APP=hello.py
flask run
1.2.


这里的hello.py是程序的文件名。运行以上命令后,就可以在浏览器中访问[http://127.0.0.1:5000/,看到“Hello](https://link.juejin.cn/?target=http%3A%2F%2F127.0.0.1%3A5000%2F%25EF%25BC%258C%25E7%259C%258B%25E5%2588%25B0%25E2%2580%259CHello "http://127.0.0.1:5000/%EF%BC%8C%E7%9C%8B%E5%88%B0%E2%80%9CHello"), World!”的输出。

Flask 的请求和响应机制
--------------

在Flask中,请求和响应是核心概念之一。每次客户端发送请求时,都会创建一个Request对象。这个对象包含了客户端发送的所有信息,如HTTP方法、请求头、请求数据等。

在视图函数中,可以通过request对象获取请求的数据。例如,可以通过request.method属性获取HTTP方法,通过request.form属性获取表单数据,通过request.args属性获取查询字符串数据等。

当视图函数返回响应时,会创建一个Response对象。这个对象包含了要发送给客户端的所有信息,如响应状态码、响应头、响应数据等。

在视图函数中,可以通过return语句返回响应数据。例如,可以返回一个字符串、一个字典或一个模板等。Flask会自动将返回值封装成一个Response对象并发送给客户端。

Flask 的路由和视图函数
--------------

路由是指根据URL地址来匹配视图函数的过程。在Flask中,可以使用route()装饰器来定义路由。这个装饰器接收一个字符串参数,用于指定路由的URL地址。

下面是一个示例:

@app.route(‘/hello’)
def hello():
return ‘Hello, World!’
1.2.3.


这个示例中,定义了一个路由/hello,对应的视图函数为hello()。当客户端访问/hello时,就会调用hello()函数并返回“Hello, World!”字符串。

视图函数是指处理请求并返回响应的函数。在Flask中,可以使用route()装饰器来定义视图函数。这个装饰器可以接收多个参数,其中最重要的一个参数是methods,用于指定视图函数允许处理的HTTP方法。

下面是一个示例:

@app.route(‘/login’, methods=[‘GET’, ‘POST’])
def login():
if request.method == ‘POST’:
username = request.form[‘username’]
password = request.form[‘password’]
# TODO: 验证用户名和密码
return ‘登录成功’
else:
return render_template(‘login.html’)
1.2.3.4.5.6.7.8.9.


这个示例中,定义了一个路由/login,对应的视图函数为login()。这个函数允许处理GET和POST两种HTTP方法。

当请求方法为POST时,表示客户端提交了表单数据。可以通过request.form获取表单数据,并进行用户名和密码的验证。如果验证通过,就返回“登录成功”字符串。

当请求方法为GET时,表示客户端请求登录页面。可以通过render\_template()函数渲染一个HTML模板,然后返回给客户端。

Flask 的模板和静态文件
--------------

在Flask中,可以使用模板和静态文件来渲染HTML页面。模板可以让开发者更加灵活地组织页面结构,而静态文件可以让开发者更加方便地管理CSS、JavaScript等资源文件。

在Flask中,可以使用render\_template()函数来渲染模板。这个函数接收一个模板文件名作为参数,并返回一个渲染后的HTML页面。模板文件一般存放在应用程序的templates目录下。

下面是一个示例:

from flask import render_template

@app.route(‘/hello/’)
def hello(name):
return render_template(‘hello.html’, name=name)
1.2.3.4.5.


这个示例中,定义了一个路由/hello/,对应的视图函数为hello()。这个函数接收一个参数name,然后通过render\_template()函数渲染了一个模板文件hello.html。

模板文件hello.html的内容如下:

Hello, {​{ name }}!

Hello, {{ name }}!

1.2.3.4.5.6.7.8.9.

在这个模板文件中,使用了Flask提供的模板语法。{{ name }}表示要渲染的变量名,Flask会自动将这个变量替换成视图函数中传递的参数。

静态文件是指不需要动态生成的文件,如CSS、JavaScript、图片等。在Flask中,可以使用url\_for()函数来生成静态文件的URL地址。静态文件一般存放在应用程序的static目录下。

下面是一个示例:

htmlCopy code My Blog

Welcome to my blog!

This is my first blog post.

My Blog
1.


在这个示例中,使用了url\_for()函数来生成静态文件的URL地址。这个函数接收两个参数,第一个参数是static,表示要生成静态文件的URL地址,第二个参数是filename,表示要生成的静态文件的文件名。

Flask会自动从应用程序的static目录中查找这个静态文件,并生成一个完整的URL地址。这个URL地址可以用在HTML页面中的link、img、script等标签中。

在应用程序中使用静态文件的示例代码如下:

from flask import Flask, url_for

app = Flask(name)

@app.route(‘/’)
def index():
return “”"


My Blog



Welcome to my blog!


This is my first blog post.


My Blog



“”".format(url_for(‘static’, filename=‘css/style.css’),
url_for(‘static’, filename=‘img/logo.png’),
url_for(‘static’, filename=‘js/main.js’))
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.


这个示例中,定义了一个路由/,对应的视图函数为index()。这个函数返回一个HTML页面,其中使用了静态文件。

> ### **相关领域拓展:(技术前沿)**
> 
> 扯个嗓子!关于目前低代码在技术领域很活跃!
> 
> 低代码是什么?一组数字技术工具平台,能基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务等。通过少量代码或不用代码实现数字化转型中的场景应用创新。它能缓解甚至解决庞大的市场需求与传统的开发生产力引发的供需关系矛盾问题,是数字化转型过程中降本增效趋势下的产物。
> 
> 这边介绍一款好用的低代码平台——JNPF快速开发平台。近年在市场表现和产品竞争力方面表现较为突出,采用的是最新主流前后分离框架(SpringBoot+Mybatis-plus+Ant-Design+Vue3)。代码生成器依赖性低,灵活的扩展能力,可灵活实现二次开发。
> 
> 以JNPF为代表的企业级低代码平台为了支撑更高技术要求的应用开发,从数据库建模、Web API构建到页面设计,与传统软件开发几乎没有差异,只是通过低代码可视化模式,减少了构建“增删改查”功能的重复劳动,还没有了解过低代码的伙伴可以尝试了解一下。
> 
> 应用:[www.jnpfsoft.com/?juejin](https://link.juejin.cn/?target=https%3A%2F%2Fwww.jnpfsoft.com%2F%3Fjuejin "https://www.jnpfsoft.com/?juejin")
> 
> 有了它,开发人员在开发过程中就可以轻松上手,充分利用传统开发模式下积累的经验。所以低代码平台对于程序员来说,有着很大帮助。

总结
--

Flask是一个轻量级的Web应用框架,它可以帮助开发者快速构建Web应用程序。在Flask中,可以使用路由、视图函数、模板和静态文件等组件来构建Web应用程序。

本文介绍了Flask的基础知识,包括安装和配置Flask环境、编写第一个Flask应用程序、Flask的请求和响应机制、Flask的路由和视图函数、Flask的模板和静态文件等内容。希望对初学者有所帮助。

  

本文转自 [https://juejin.cn/post/7255512016731373623](https://juejin.cn/post/7255512016731373623),如有侵权,请联系删除。
        # TODO: 验证用户名和密码
        return '登录成功'
    else:
        return render_template('login.html')
1.2.3.4.5.6.7.8.9.

这个示例中,定义了一个路由/login,对应的视图函数为login()。这个函数允许处理GET和POST两种HTTP方法。

当请求方法为POST时,表示客户端提交了表单数据。可以通过request.form获取表单数据,并进行用户名和密码的验证。如果验证通过,就返回“登录成功”字符串。

当请求方法为GET时,表示客户端请求登录页面。可以通过render_template()函数渲染一个HTML模板,然后返回给客户端。

Flask 的模板和静态文件

在Flask中,可以使用模板和静态文件来渲染HTML页面。模板可以让开发者更加灵活地组织页面结构,而静态文件可以让开发者更加方便地管理CSS、JavaScript等资源文件。

在Flask中,可以使用render_template()函数来渲染模板。这个函数接收一个模板文件名作为参数,并返回一个渲染后的HTML页面。模板文件一般存放在应用程序的templates目录下。

下面是一个示例:

from flask import render_template

@app.route('/hello/<name>')
def hello(name):
    return render_template('hello.html', name=name)
1.2.3.4.5.

这个示例中,定义了一个路由/hello/,对应的视图函数为hello()。这个函数接收一个参数name,然后通过render_template()函数渲染了一个模板文件hello.html。

模板文件hello.html的内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>Hello, {{ name }}!</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>
1.2.3.4.5.6.7.8.9.

在这个模板文件中,使用了Flask提供的模板语法。{{ name }}表示要渲染的变量名,Flask会自动将这个变量替换成视图函数中传递的参数。

静态文件是指不需要动态生成的文件,如CSS、JavaScript、图片等。在Flask中,可以使用url_for()函数来生成静态文件的URL地址。静态文件一般存放在应用程序的static目录下。

下面是一个示例:

htmlCopy code<!DOCTYPE html><html><head> <title>My Blog</title> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}"></head><body> <h1>Welcome to my blog!</h1> <p>This is my first blog post.</p> <img src="{{ url_for('static', filename='img/logo.png') }}" alt="My Blog"> <script src="{{ url_for('static', filename='js/main.js') }}"></script></body></html>
1.

在这个示例中,使用了url_for()函数来生成静态文件的URL地址。这个函数接收两个参数,第一个参数是static,表示要生成静态文件的URL地址,第二个参数是filename,表示要生成的静态文件的文件名。

Flask会自动从应用程序的static目录中查找这个静态文件,并生成一个完整的URL地址。这个URL地址可以用在HTML页面中的link、img、script等标签中。

在应用程序中使用静态文件的示例代码如下:

from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')
def index():
    return """
    <html>
    <head>
        <title>My Blog</title>
        <link rel="stylesheet" href="{0}">
    </head>
    <body>
        <h1>Welcome to my blog!</h1>
        <p>This is my first blog post.</p>
        <img src="{1}" alt="My Blog">
        <script src="{2}"></script>
    </body>
    </html>
    """.format(url_for('static', filename='css/style.css'), 
               url_for('static', filename='img/logo.png'),
               url_for('static', filename='js/main.js'))
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.

这个示例中,定义了一个路由/,对应的视图函数为index()。这个函数返回一个HTML页面,其中使用了静态文件。

相关领域拓展:(技术前沿)

扯个嗓子!关于目前低代码在技术领域很活跃!

低代码是什么?一组数字技术工具平台,能基于图形化拖拽、参数化配置等更为高效的方式,实现快速构建、数据编排、连接生态、中台服务等。通过少量代码或不用代码实现数字化转型中的场景应用创新。它能缓解甚至解决庞大的市场需求与传统的开发生产力引发的供需关系矛盾问题,是数字化转型过程中降本增效趋势下的产物。

这边介绍一款好用的低代码平台——JNPF快速开发平台。近年在市场表现和产品竞争力方面表现较为突出,采用的是最新主流前后分离框架(SpringBoot+Mybatis-plus+Ant-Design+Vue3)。代码生成器依赖性低,灵活的扩展能力,可灵活实现二次开发。

以JNPF为代表的企业级低代码平台为了支撑更高技术要求的应用开发,从数据库建模、Web API构建到页面设计,与传统软件开发几乎没有差异,只是通过低代码可视化模式,减少了构建“增删改查”功能的重复劳动,还没有了解过低代码的伙伴可以尝试了解一下。

应用:www.jnpfsoft.com/?juejin

有了它,开发人员在开发过程中就可以轻松上手,充分利用传统开发模式下积累的经验。所以低代码平台对于程序员来说,有着很大帮助。

总结

Flask是一个轻量级的Web应用框架,它可以帮助开发者快速构建Web应用程序。在Flask中,可以使用路由、视图函数、模板和静态文件等组件来构建Web应用程序。

本文介绍了Flask的基础知识,包括安装和配置Flask环境、编写第一个Flask应用程序、Flask的请求和响应机制、Flask的路由和视图函数、Flask的模板和静态文件等内容。希望对初学者有所帮助。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉 CSDN大礼包:gift::[全网最全《Python学习资料》免费赠送:free:!](https://blog.csdn.net/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502) (安全链接,放心点击)

若有侵权,请联系删除

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值