大白话说Python+Flask入门(三)

这篇具有很好参考价值的文章主要介绍了大白话说Python+Flask入门(三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

今天状态很不好,我发现学这部分知识的时候,会出现溜号或者注意力无法集中的情况。

我能想到的是,大概率是这部分知识,应该是超出了我现在的水平了,也就是说我存在知识断层了,整体感觉真的是一知半解。

那有同学会问了,那你能说明白吗?

我理解的肯定能呀,来往下看!

Flask的使用

1、消息闪现的使用

这块只能算是明白了大概,并没有算是真正的理解,待后续写多了,我再回来补充(当时感觉还是spring boot好),还是老规矩上代码。

模版文件index.html,示例代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>index </title>
  </head>
  <body>
    {% with messages = get_flashed_messages() %}
    {% if messages %}
    {% for message in messages %}
    {{ message }}
    {% endfor %}
    {% endif %}
    {% endwith %}
    <h3>Welcome!</h3>
    <a href = "{{ url_for('login') }}">login</a>
  </body>
</html>

模版文件login_demo.html,示例代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>login demo</title>
  </head>
  <body>
    <form action="http://localhost:8888/login" method="post">
      username:<input type="text" name="username"><br>
      password:<input type="password" name="password"><br>
      <input type="submit" value="login"><br>
    </form>
    {% if error %}
    <p><strong>Error: </strong> {{ error }}</p>
    {% endif %}
  </body>
</html>

逻辑部分,示例代码如下:

from flask import Flask, request, url_for, redirect, render_template, flash

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')


@app.route('/login', methods=['POST', 'GET'])
def login():
    error = None
    if request.method == 'POST':
        if request.form['username'] == 'admin' and request.form['password'] == 'admin':
            flash('登录成功!')
            return redirect(url_for('index'))
        else:
            error = 'login failed'
    return render_template('login_demo.html', error=error)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888, debug=False)

效果:

大白话说Python+Flask入门(三)

知识点:

  • 可以理解为闪现消息是向用户反馈信息,更好的诠释了交互的重要性,即我操作后,马上会给我反馈信息,当且仅当仅在下一次请求时访问它,便会与布局模板结合展示消息。
  • flash(message, category):message 是要闪现的实际消息,category 可选。它可以是“error”,“info”或“warning”。
  • get_flashed_messages(with_categories, category_filter):两个参数都是可选参数。如果接收到的消息具有类别,则第一个参数是元组。第二个参数仅用于显示特定消息。
  • {% if error %}{% 这里写代码 %},用这个包裹
  • {{ message }}: {{ 变量 }},插值表达式和Jmeter类似用于取值

2、使用Flask 发送邮件

安装依赖:

pip install Flask-Mail

没啥可说的,就是发送邮件功能,这里我用qq邮箱为例,示例代码如下:

from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)

app.config['MAIL_SERVER'] = 'smtp.qq.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'your@qq.com'
app.config['MAIL_PASSWORD'] = '你生成的授权码'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)


@app.route("/")
def index():
    msg = Message('Hello', sender='your@qq.com', recipients=['接收人邮箱'])
    msg.body = "Hello Flask message sent from Flask-Mail"
    mail.send(msg)
    return "Sent Success!"


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888, debug=False)

效果:

image.png

知识点:

1、mail = Mail(app):构造函数

2、Mail类的方法:

  • send(): 发送Message类对象的内容
  • connect(): 建立与邮件主机连接
  • send_message(): 发送消息对象

3、Message类方法

attach() - 为邮件添加附件。此方法采用以下参数:

  • filename - 要附加的文件的名称
  • content_type - MIME类型的文件
  • data - 原始文件数据
  • 处置 - 内容处置(如果有的话)。

add_recipient() - 向邮件添加另一个收件人

3、Flask WTF的使用

安装依赖

pip install flask-WTF

举个栗子

主要用于表单的处理验证,先上模版loginForm.html代码,如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>login Form Demo</title>
  </head>
  <body>
    {#这里将用来展示渲染的数据模版#}
    <form method="post">
      {{ form.username.label }} {{ form.username }} <br>
      {{ form.password.label }} {{ form.password }} <br>
      {{ form.address.label }} {{ form.address }} <br>
      {{ form.email.label }} {{ form.email }} <br>
      {{ form.remember.label }} {{ form.remember }} <br>
      {{ form.submit}} <br>
    </form>
  </body>
</html>

表单参数loginForm.py示例代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2023/11/19 16:40
# @Author  : longrong.lang
# @FileName: loginForm.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
# @Motto:你只管努力,剩下的交给天意.
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField, BooleanField, TextAreaField, EmailField
from wtforms.validators import DataRequired, Length


class LoginForm(FlaskForm):
    username = StringField('用户名:', validators=[DataRequired('请输入用户名')])
    password = PasswordField('密码:', validators=[DataRequired('请输入密码')])
    address = TextAreaField('地址:')
    email = EmailField('邮箱:',validators=[Length(10,50)])
    remember = BooleanField('记住我')
    submit = SubmitField('提交')

逻辑代码示例,如下:

from flask import Flask, flash, render_template, request

from flask_case.loginForm import LoginForm

app = Flask(__name__)

app.secret_key = 'secret_key'


@app.route('/login', methods=['GET', 'POST'])
def login():
    login_form = LoginForm()
    username = request.form.get("username")
    password = request.form.get("password")
    # 验证表单
    if username == 'admin' and password == 'admin':
        return "login success"
    else:
        flash("参数有误或者不完整")
        return render_template('loginForm.html', form=login_form)
    return render_template('loginForm.html', form=login_form)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8888, debug=False)

效果:

大白话说Python+Flask入门(三)

知识点:

1、 CSRF 校验处理的两种方式:

app.config['WTF_CSRF_ENABLED'] = False #直接关闭
app.secret_key = 'secret_key' #直接加上

自动创建CSRF令牌的隐藏字段。这是为了防止Cross Site Request Forgery(跨站请求伪造)攻击,所以加上!

2、WTforms表单字段含义:

  • TextField :表示<input type ='text'> HTML表单元素
  • BooleanField:表示<input type ='checkbox'> HTML表单元素
  • DecimalField:用于显示带小数的数字的文本字段
  • IntegerField:用于显示整数的文本字段
  • RadioField:表示<input type = 'radio'> HTML表单元素
  • SelectField:表示选择表单元素
  • TextAreaField:表示<textarea> HTML表单元素
  • PasswordField:表示<input type = 'password'> HTML表单元素
  • SubmitField:表示<input type = 'submit'>表单元素

3、validators: 常用验证的使用:

  • DataRequired:检查输入字段是否为空
  • Email:检查字段中的文本是否遵循电子邮件ID约定
  • IPAddress:在输入字段中验证IP地址
  • Length:验证输入字段中的字符串的长度是否在给定范围内
  • NumberRange:验证给定范围内输入字段中的数字
  • URL:验证在输入字段中输入的URL

写在最后

整个学习过程大约4个小时(也许是消化了),好像突然悟了,能根据理解写出来,但是感觉还是欠一些火候的,个人感觉还是练得少。

值得一提的是,学习这东西,真的就是一种感觉,进入“心流”吧。

看过黑子的篮球的同学应该知道Zone吧,就是那种随心所欲的感觉。

image.png

怎么说呢,就是在拉伸区的效果最好,舒适区是无用功,所以找到自己的拉伸区就显得格外重要了。

有些同学会问,那什么是拉伸区,就是舒适区边缘。

那怎么找呀?等我掌握方法的,我会写出来!

我是六哥,觉得文章好,请给我个赞呗!文章来源地址https://www.toymoban.com/news/detail-749079.html

到了这里,关于大白话说Python+Flask入门(三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker圣经:大白话说Docker底层原理,6W字实现Docker自由

    现在 拿到offer超级难 ,甚至连面试电话,一个都搞不到。 尼恩的 技术社群 (50+)中,很多小伙伴凭借 “左手云原生+右手大数据”的绝活,拿到了offer,并且是非常优质的offer,据说年终奖都足足18个月。 而云原生的核心组件是 Docker + K8S,但是 Docker 又很难。在这里,尼恩从

    2023年04月08日
    浏览(45)
  • 今天吃什么小游戏(基于Flask框架搭建的简单应用程序,用于随机选择午餐选项。代码分为两部分:Python部分和HTML模板部分)

    今天吃什么 一个简单有趣的外卖点饭网站,不知道吃什么的时候,都可以用它自动决定你要吃的,包括各种烧烤、火锅、螺蛳粉、刀削面、小笼包、麦当劳等午餐全部都在内。点击开始它会随意调出不同的午餐,点击停止就会挑选一个你准备要吃的,如果没有想吃的,你还能

    2024年01月16日
    浏览(46)
  • Python-flask项目入门

    一、flask对于简单搭建一个基于python语言-的web项目非常简单 二、项目目录 示例代码 git路径  三、代码介绍 1、安装pip依赖 2.配置数据源 config.py 3、引用orm框架 访问数据库 /mapper/exts.py 4、启动文件 app.py 5、数据库操作 通过Flask提供orm框架对数据库进行操作 5.1增加 5.2删除 5.3修

    2024年02月14日
    浏览(36)
  • Python之Flask入门教程

    Flask是一个用python编写的Web应用程序框架。Armin Ronacher带领一个名为Pocco的国际Python爱好者团队开发了Flask。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。 Flask也被称为“microframework” ,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据

    2024年02月02日
    浏览(56)
  • Python框架之Flask入门和视图

    需要安装 Pycharm专业版 Python后端的2个主流框架 Flask 轻量级框架 Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档:https://flask.palletsprojects.com/ 中文文档:https://dormousehole.readthedocs.io/ Flask是一个基于MVC设计模式的Web后端框架 MVC: M: Model 数据模型 V: View 界面 C:

    2024年02月06日
    浏览(41)
  • Python Web 开发之 Flask 入门实践

    导语:Flask 是一个轻量级的 Python Web 框架,广受开发者喜爱。本文将带领大家了解 Flask 的基本概念、搭建一个简单的 Web 项目以及如何进一步扩展功能。 Flask 是一个基于 Werkzeug 和 Jinja2 的微型 Web 框架,它的特点是轻量、易学习、可扩展。使用 Flask,我们可以快速构建 Web 应

    2024年01月22日
    浏览(59)
  • Python光速入门 - Flask轻量级框架

            FlASK是一个轻量级的WSGI Web应用程序框架,Flask的核心包括Werkzeug工具箱和Jinja2模板引擎,它没有默认使用的数据库或窗体验证工具,这意味着用户可以根据自己的需求选择不同的数据库和验证工具。Flask的设计理念是保持核心简单,同时提供强大的扩展性,用户

    2024年03月14日
    浏览(106)
  • 初识Flask:Python轻量级Web框架入门教程

    Flask是一个用Python编写的轻量级Web应用框架。由于其“微”性质,Flask在提供核心服务的同时,仍然提供了许多扩展的可能性。在这篇文章中,我们将从最基础开始,学习如何使用Flask构建一个Web应用。 首先,你需要安装Flask库。使用pip进行安装是最简单的方式: 接着,我们来

    2024年02月14日
    浏览(98)
  • Flask 使用Flask的session来保存用户登录状态例子

    使用Python的Flask库实现的登录接口、查询金额接口和注销接口的示例。 当用户发送POST请求到 /login 接口时,代码会获取请求中的用户名和密码。如果用户名和密码匹配(在示例中是\\\'admin\\\'和\\\'admin123\\\'),则会将用户名保存在session中,并将session设置为永久有效。这意味着用户在

    2024年02月16日
    浏览(48)
  • python中字符串前面b什么意思?

    python中字符串前面b什么意思? 在Python中,前缀 b 表示一个字节字符串(bytes string)。字节字符串是一种特殊类型的字符串,它由原始的字节序列组成,而不是Unicode字符序列。 在Python 3中,字符串默认是Unicode字符串,使用UTF-8编码。而字节字符串是以字节的形式表示文本数据,

    2024年04月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包