程序员学习------python后端flask框架学习

简介: 搭建一个网站,用flask框架是一个很不错的选择,分享一下学习心得

一、flask介绍

1.什么是flask?

  • Flask是一个基于Python并用Python编写的Web应用程序框架
  • flask框架模式:MTV模式

    • M :Models ,模型层,负责数据库建模
    • T :Templates ,模板层,用于处理用户显示的内容,如:html
    • V :Views ,视图层,处理与用户交互的部分内容。处理用户的请求并给出响应

2.flask的两个核心

  1. Werkzeug(路由模块):

    它是一个WSGI工具包,它实现了请求,响应对象和实用函数。这使得能够在其上构建web框架。Flask框架使用Werkzeug作为其基础之一。

  2. jinja2:

    jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。

3.flask与Django的区别

Django 是一个重量级的框架,Flask是一个轻量型的框架;那么Django框架他到底重在哪呢?对比Flask框架,Django原生提供了众多的功能组件,让开发更简便快速。

而Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。flask不会帮你去做选择。

二、使用方法

1.创建flask框架

在pycharm专业版中是可以直接创建的,可以直接新建一个flask项目,编译器会帮你创建好static文件,templates文件和app.py文件。

直接一个完整的flask框架就给你创建好了,我们便可以直接使用了。

2.flask路由

(1).什么是路由(route)?

  • 客户端将请求发送给web服务器,web服务器再将请求发送给flask程序实例
  • 程序实例需要知道每个url请求要运行哪些代码,所以需要建立一个 url 到 python 函数的映射
简单点说就是通过用户访问的路径,匹配相应的函数

(2).路由的使用

基本使用方法:

 @app.route('/')
def hello_world():           
    return '你好!'

@app.route('/index')     #\index 访问路径,用户通过什么方式访问
def hello():
    return "你好!"

单引号中的内容就是我们的访问路径

获取字符串参数的使用:

@app.route('/user/<name>')         #获取参数内容
def welcome(name):
    return "你好!,%s"%name

我们进入网页输入路径后所带的字符串参数,便会输出出来

获取整型参数的使用:

@app.route('/user/<int:id>')         #获取参数内容
def welcome1(id):
    return "你好!,%d 号的会员"%id

同样也是在打开是后边加上整型参数,会在我们网页中显示出现。就不多做演示

3.渲染网页

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

我们需要导入一个包

from flask import Flask,render_template

加上我们后边的render_template,就可以使用render_template方法返回渲过后的网页,进行展示

我们会打开一个“index.html“的网站,会显示被渲染后的网站页面

同时我们还可以向页面传递一些变量:

@app.route('/')
def index2():
    time = datetime.date.today()     #普通变量
    name = ["小张","小王","小李"]     #列表类型
    tesk ={"任务":"打扫卫生","时间":"三小时"}  #字典类型

    return render_template("index.html",var = time,list = name,tesk =tesk)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        今天是{{ var }}欢迎光临。<br>
        今天值班的有:<br>
        {% for data in list %}    <!--用大括号和百分号括起来的是控制结构,还有if-->
            <li>{{ data }}</li>
        {% endfor %}
        任务:<br>               <!--了解一下如何在页面中打印表格,以及如何迭代-->
            <table border="1">
                {% for key,value in tesk.items() %}   <!--tesk.items()) :迭代器,将字典转换成[(key,value),(key,value),(key,value)]格式的列表-->
                <tr>
                    <td>{{key}}</td>
                    <td>{{ value }}</td>
                </tr>
                {% endfor %}
            </table>


</body>
</html>

上边分别是传递普通变量,列表变量和字典变量

在HTML文件中,传递变量是使用{{ }}的方式进行传递的

for循环语句则是:

{% for data in list%}

<内容>

{% endfor%}

#表单提交
@app.route('/test/register')    #路径,test前面需要加上/
def register():
    return render_template("test/register.html")    #当前templates文件夹下边的文件结构

#接收表单的路由需要指定methods为POST
@app.route('/result',methods=['POST'])
def register1():
    if request.method=='POST':
        result = request.form          #将表单里的内容形成一个字典,传给result
        return render_template("test/result.html",result = result)

还可以进行表单提交

当然我们需要建立两个HTML文件,然后在一个中书写表单内容,以及提交跳转链接到的第二个网页中。

需要注意的是,我们默认的请求方式是get,但是我们接收表单的请求方式是post ,所以记得要将其更改为post

同时还有一个注意点:我们跳转的网页一般都不会使用静态的自己输入网址,我们一般是使用反路由:url_for() 自动生成网页。

三、学习心得

通过学习了flask基础用法,同时查阅了许多资料,也通过了一些例子进行实验,了解到我们可以通过将自己的html文件,或者下载的HTML文件,可以导入在我们flask文件中成为模板,然后我们可以通过本地服务器网址打开我们的网页,但是无法让其他人浏览网页。如果配置了服务器的话便可以让其他用户进行访问。

相关文章
|
18天前
|
安全 数据安全/隐私保护 开发者
Flask框架的安全性如何?
安全是一个持续的过程,需要不断地关注和更新。随着新的安全威胁的出现和技术的发展,开发者需要及时了解并采取相应的措施来应对,以确保 Flask 应用始终处于安全的状态。
|
13天前
|
SQL 监控 安全
Flask 框架防止 SQL 注入攻击的方法
通过综合运用以上多种措施,Flask 框架可以有效地降低 SQL 注入攻击的风险,保障应用的安全稳定运行。同时,持续的安全评估和改进也是确保应用长期安全的重要环节。
123 71
|
13天前
|
安全 网络安全 数据安全/隐私保护
Flask框架的安全机制与其他框架相比有哪些优势和劣势?
总的来说,Flask 的安全机制在灵活性和可扩展性方面有其独特优势,但也需要开发者在安全方面投入更多的精力和努力,以确保应用的安全可靠运行。
34 11
|
11天前
|
SQL 安全 Java
除了Flask框架,还有哪些框架能防止SQL注入攻击?
这些框架都在安全方面有着较好的表现,通过它们的内置机制和安全特性,可以有效地降低 SQL 注入攻击的风险。然而,无论使用哪个框架,开发者都需要具备良好的安全意识,正确配置和使用框架提供的安全功能,以确保应用的安全可靠。同时,持续关注安全更新和漏洞修复也是非常重要的。
31 7
|
9天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
18天前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
|
20天前
|
开发者 数据库管理 Python
Django框架和Flask框架的区别
总体而言,Django 适合需要快速搭建大型应用的开发者,而 Flask 则更适合有特定需求和追求灵活性的开发者。
|
18天前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
19天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
19天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API