Falsk框架 - 入门学习认知

关于python flask框架开发
Flask 依赖两个外部库:WerkZeug 和 Jinja2。WerkZeug 是一个WSGI(在web应用和多种服务器之间的标准Python 接口)工具集。Jinja2负责渲染模板。所以在安装Flask之前,需要安装这两个外部库,而最简单的方法就是使用 Virtualenv 创建虚拟环境。

首先得保障已配置好相关python环境,
在这里插入图片描述

安装虚拟环境
安装指令:
pip install virtualenv

查看已安装第三方库信息(库名,版本号):
pip list
在这里插入图片描述

检验虚拟环境信息(版本号,文件路径):
virtualenv –version
在这里插入图片描述

创建虚拟环境
使用Virtualenv 命令在当前文件夹创建Python虚拟环境。创建虚拟环境之后当前文件夹会出现一个子文件夹,名字就是下述命令中指定的参数;
virtualenv venv
在这里插入图片描述

激活虚拟环境
venv\Scripts\activate
在这里插入图片描述

(venv)表示已激活状态
在当前虚拟环境下安装flask框架 进行添加源下载
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask

在这里插入图片描述

即可创建第一个flask应用
from flask import Flask
app = Flask(name)

@app.route(‘/’)
def hello_world():
return ‘Hello World!’

if name == ‘main’:
app.run(debug=True)

Flask框架概念
1.应用程序对象:应用程序对象是Flask应用程序的核心对象。它是一个Flask类的实例。应用程序对象是用于创建Web应用程序的主要接口。
2.上下文:Flask框架中有两种上下文:应用程序上下文和请求上下文。应用程序上下文为应用程序提供了一个全局上下文,而请求上下文则为每个请求提供了一个上下文。
3.路由:路由是Flask应用程序中的URL映射。它指定了URL与视图函数之间的关系。
4.视图函数:视图函数是Flask应用程序中处理请求的函数。它们使用装饰器将路由绑定到函数上。
5.模板:模板是Flask应用程序中用于渲染HTML页面的文件。它们使用Jinja2模板引擎进行渲染。
6.表单:表单是Flask应用程序中用于收集用户输入数据的HTML表单。它们使用WTForms库进行验证和处理
7.数据库模块:Flask 可以轻松地与多种数据库集成,包括 MySQL、PostgreSQL、SQLite 等。
8.扩展模块: Flask 的扩展模块提供了各种功能,如邮件发送、缓存、登录认证等。

应用程序结构
init.py文件是Flask应用程序的入口文件。它创建了应用程序对象,并将视图函数和模板注册到应用程序中。views.py文件包含了应用程序的视图函数。models.py文件包含了应用程序的模型类。templates文件夹包含了应用程序的HTML模板文件。static文件夹包含了应用程序的静态文件,如CSS和JavaScript文件;
路由
在Flask框架中,路由是用于将URL映射到视图函数的机制。Flask提供了一个route()装饰器来定义路由。以下是一个示例:
from flask import Flask
app = Flask(name)
@app.route(‘/’)
def index():
return ‘Hello World!’
在这个示例中,我们定义了一个根路由(‘/’)和一个名为index()的视图函数。当用户访问根URL时,Flask将调用index()函数并返回’Hello World!‘字符串。
Flask路由还支持动态参数。以下是一个示例:
@app.route(’/user/')
def user_profile(username):
return ‘User: %s’ % username
在这个示例中,我们定义了一个user_profile()视图函数,并将其绑定到/user/路由上。当用户访问URL时,Flask将提取URL中的username参数,并将其传递给user_profile()函数。
@app.route(rule, options):定义路由规则和处理函数之间的映射关系。其中 rule 参数表示路由规则,options 参数表示路由的配置选项。

模板
在Flask框架中,模板是用于渲染HTML页面的文件。Flask使用Jinja2模板引擎来渲染模板;
下面是一个简单的 Flask 模板模块的示例,使用 Jinja2 模板引擎渲染一个 HTML 页面:
from flask import Flask,
render_templateapp = Flask(name) # 路由规则和视图函数
@app.route(‘/’)def index():
return render_template(‘index.html’, name=‘World’) # 启动应用程序
if name == ‘main’:
app.run()
在上面的示例中,我们定义了一个路由规则 /,并使用 render_template() 函数将模板文件 index.html 渲染为 HTML 页面,其中传递了一个名为 name 的变量值为 ‘World’。
下面是 index.html 模板文件的示例:

Hello, {​{ name }}!

Hello, {{ name }}!

代码讲解: 在上面的示例中,使用了 Jinja2 模板引擎的语法 {{ name }},它将在渲染模板时被替换为 render_template() 函数中传递的 name 变量的值。 启动 Flask 应用程序后,访问根 URL / 将会返回一个包含 Hello, World! 的 HTML 页面。 模板模块是 Flask 应用程序的重要组成部分,它可以实现动态生成各种类型的文档,如 HTML 页面、JSON 数据、CSV 文件等。在 Flask 中,使用模板引擎可以方便地将数据和 HTML 页面进行分离,实现更加清晰和易于维护的代码结构。

表单
在Flask框架中,表单是用于收集用户输入数据的HTML表单。Flask使用WTForms库来验证和处理表单数据。
 安装 WTForms
使用 pip 安装 WTForms:
pip install WTForms
 创建表单类
在 Flask 应用程序中,需要定义一个表单类来描述需要接收的数据和对数据进行验证的规则。例如下面的示例定义了一个简单的用户注册表单:
from wtforms import Form, StringField, PasswordField, validators
class RegistrationForm(Form):
name = StringField(‘Name’, [validators.Length(min=4, max=25)])
email = StringField(‘Email’, [validators.Email()])
password=PasswordField(‘Password’,[validators.DataRequired(), validators.EqualTo(‘confirm_password’,message=‘Passwords must match’)])
confirm_password = PasswordField(‘Confirm Password’)
在上面的示例中,我们使用 WTForms 提供的 Form 类定义了一个表单类 RegistrationForm,并定义了三个字段:name、email 和 password。对于每个字段,我们使用不同的验证器进行验证,例如 validators.Length、validators.Email 和 validators.EqualTo 等。
 在视图函数中使用表单
在 Flask 应用程序中,需要使用表单类来接收用户提交的数据,然后对数据进行验证和处理。例如下面的示例定义了一个处理用户注册的视图函数:
from flask import render_template, requestfrom .forms import RegistrationForm@app.route(‘/register’, methods=[‘GET’, ‘POST’])def register(): form = RegistrationForm(request.form) if request.method == ‘POST’ and form.validate(): # 处理用户注册数据 return ‘Registration successful!’ return render_template(‘register.html’, form=form)
在上面的示例中,我们使用表单类 RegistrationForm 来接收用户提交的数据,然后在视图函数中使用 request.form 方法获取表单数据,并使用 form.validate() 方法验证表单数据是否合法。如果表单数据验证通过,则进行用户注册操作,并返回注册成功的消息。
 渲染表单模板
在 Flask 应用程序中,需要使用模板引擎来渲染表单模板,并将表单类传递给模板。例如下面的示例定义了一个注册表单模板:

{{ form.name.label }} {{ form.name }} {{ form.email.label }} {{ form.email }} {{ form.password.label }} {{ form.password }} {{ form.confirm_password.label }} {{ form.confirm_password }} Register 在上面的示例中,我们使用表单类 RegistrationForm 中的字段 name、email、password 和 confirm_password 渲染表单模板,并使用 form.name.label 和 form.name 等属性来获取标签和输入框的 HTML 代码。 表单模块是 Flask 应用程序中常用的组件之一。

数据库
在Flask框架中,您可以使用不同的数据库来存储应用程序的数据。Flask提供了许多扩展来帮助您连接和操作数据库。以下是一些常见的数据库扩展:
1.Flask-SQLAlchemy:这是一个SQLAlchemy的Flask扩展,它提供了ORM(对象关系映射)功能。
2.Flask-MongoAlchemy:这是一个MongoAlchemy的Flask扩展,它提供了MongoDB的ORM功能。
3.Flask-PyMongo:这是一个PyMongo的Flask扩展,它提供了MongoDB的Python驱动程序。

 安装 SQLAlchemy
使用 pip 安装 SQLAlchemy:
pip install SQLAlchemy

 配置数据库连接
在 Flask 应用程序中,需要配置数据库连接,包括数据库类型、主机名、端口号、数据库名、用户名和密码等。可以使用 Flask 应用程序的配置对象 app.config 来存储这些配置信息;
 定义数据库模型
使用 SQLAlchemy 模块可以方便地定义数据库模型;
例如下面的示例定义了一个简单的用户模型:
from datetime import datetime
from sqlalchemy import ColumnInteger, String, DateTimeclass
User(db.Model):
id = Column(Integer, primary_key=True)
name = Column(String(50), nullable=False)
email = Column(String(120), unique=True, nullable=False)
created_at = Column(DateTime, default=datetime.now)
在上面的示例中,我们使用 SQLAlchemy 提供的 Column 类定义了三个列:id、name、email 和 created_at。其中,id 是主键列,name 和 email 是字符串列,created_at 是日期时间列。

![在这里插入图片描述](https://img-blog.csdnimg.cn/0988d2c51f5e43939e633630b3de1c0c.jpeg#pic_center

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值