Flask备忘录

此文仅仅作为学习本人Flask途中的学习笔记以及备忘录!!!!!

代码格式粘贴复制可能格式出错emm,自己知道就好了!!

无图,慢慢看!!挺枯燥的学习笔记,做个网络备份!!!

目录

一.服务架构:

二.Flask是什么?

01. 微框架

02. 特点

03. 组成

04.常用库:

三.Flask环境搭建:

01.Windows虚拟环境直接上:

02.Conda环境:

03.Linux环境:

四.Flask工程实践:

01.万物之源Hello World:

02.请求处理:

03.JinJa2模板:

04.错误自定义:

05.静态文件:

06.Web表单:

07.数据库

08.电子邮件

09. 工厂函数:

10. 蓝图

11. 大型项目结构:

12. 项目部署:

五. 前后端分离:

01.为什么要前后端分离:

02.什么是前后端分离:

六.快速博客搭建:

01.安装bt

02.bt功能:

03.访问宝塔页面

七.实际项目:

八.项目实践:

九.Flask漏洞:

01.XSS(跨站脚本攻击):

02.CSRF(跨站请求伪造):

03.Secret key

04.SSTI

十.参考文章:


大家好,又见面了,经过前段时间的前端三剑客的学习,大家是否对Web有更深入的了解呢?是否自己能做一个美观大方的静态网站?或者有没有自己尝试着用JS做一些小玩意,诸如小时钟啥的,hh,没有也无所谓,这节课过后你们可以继续去学。不过这节课我们就来讲一些后端的东西吧!!!

由于你们之前学过Python,那我就直接以Python作为入门的后端语言,以它的轻量级框架——Flask作为大家伙们的后端入门框架!!!

来一起看看吧!!

important:需要注意的是,我们需要先下载一款软件叫做Postman,这个在你们以后学习乃至测试,实验都会用到!

官网地址:Download Postman | Get Started for Free

百度网盘地址:链接:百度网盘 请输入提取码 提取码:8bhl

比邻网盘:https://pan.bilnn.com/api/v3/file/sourcejump/P8NmyAUO/ZMYsRskBx_Pb-1mRV5is9jBthgWkHAwaU3b1jjVHc90*

比邻网盘记得带个*号!!

尤其是前后端接口的测试,可以使用诸如postman之类的软件进行测试以及纠错!

一.服务架构:

先给大家科普一下一些常识:

- B/S:浏览器/服务器架构(客户端需要更新才行)
- C/S:客户端/服务器架构(刷新页面即可更新)(主流)(尤其是H5时代的到来)

CS即Client/Server(客户机/服务器)结构,C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。

BS即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。 B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。

二.Flask是什么?

01. 微框架

Flask是一个微框架,什么叫做微框架呢?它并不是去掉了啥Web功能,或是叫你把所有Web应用放在一个py文件里面去执行,(可以但没必要hh),本身Flask提供了最基础最核心的功能,其余的拓展功能并不直接替你决策。如使用哪种数据库之类的,这些都是由开发者掌握,简而言之,Flask框架是一个DIY的框架,你可以在上面玩出各种花样!flask框架小,不代表着它的功能少!

并且它也是可以在复杂的生产环境中投入使用的!

Flask更多是和优秀的轮子结合,使得它更加灵活以及强大,可玩性更强!配置选项众多,但都设置了一些合理的默认值,使你不用过于担心安全问题!

02. 特点

  • Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过

  • Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库

  • 入门简单,即便没有多少web开发经验,也能很快做出网站

  • 非常适用于小型网站

  • 非常适用于开发web服务的API

  • 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验

  • 各方面性能均等于或优于Django

  • Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库

  • Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django

  • Flask比Django更加Pythonic,与Python的philosophy更加吻合

03. 组成

Flask核心有三个主要依赖:路由、调试和Web服务器网关接口(WSGI,Web server gateway interface),子系统是由Werkzeug提供,模板系统由Jinja2提供,命令行集成是由Click提供。

原生flask不支持数据库访问、Web表单验证和用户身份验证等高级功能。这些绝大多数web应用需要的核心服务都以拓展的形式实现,然后再与核心包集成。

开发者可以自由挑选符合项目需求的拓展,甚至可以自行开发。

04.常用库:

单单只有Flask还是远远不够的!这时候你就要把目光放在那些强大的Flask库上,下面就是我们常用的库的列表,内容不完整,仅供参考:

  • flask-script

    为Flask提供强大的命令行操作,与Django shell类似。

  • flask-login

    Flask user session 管理,提供诸如login_user, logout_user, login_required, current_user等功能,也是其他很多Flask库的基础。

  • flask-admin

    为Flask应用提供操作简单且易于扩展的数据库管理界面,与Django自带的数据库管理app类似。

  • Flask-WTF

    Flask与WTForms的集成,提供强大的Form安全和校验机制,与Django内置的Form功能类似。

  • flask-principal

    Flask强大的权限管理机制,灵活性强,提供了一个权限管理的基础框架,是很多Flask权限相关扩展的基础。

  • flask-restful

    一个强大的Flask RESTful框架,简单好用。

  • flask-api

    相当于Django REST Framework的Flask版,是另一个强大的Flask RESTful框架。

  • Flask-Mail

    Flask-Mail 为Flask应用添加了SMTP 邮件发送功能

  • Flask-User

    Flask-User集成了用户管理相关功能,并允许对功能做定制性修改,其相关功能包括Register, Confirm email, Login, Change username, Change password, Forgot password等。

    Flask-User 基于Flask-SQLAlchemy,NoSQL数据库无法使用。

  • flask-security

    Flask-Security让开发者能够很快的为应用添加常用的安全机制,其整合了Flask-Login, Flask-Mail, Flask-Principal, Flask-Script等应用。

  • flask-babel

    Flask国际化和本地化扩展,基于Babel

  • flask-locale

    为Flask应用添加语言包,与flask-babel类似。

三.Flask环境搭建:

01.Windows虚拟环境直接上:

额,实质上Flask就是python写的一个拓展包,直接下载它就是了!!

我们现在Windows完成开发,再将代码打包至服务器上进行生产环境的实现。

好,现在打开我们的Pycharm

然后点击终端,进行Flask的下载

pip install flask

直接下载,好了,环境就搭好了,快不快?

一般来说,我们都是在Windows环境下进行开发,然后项目打包至云服务器上进行部署。

02.Conda环境:

如果你之前装了conda,那也可以直接输入下面的命令:

conda create --name flask python=3.9

使用PyCharm创建一个名为flask-demo的项目,并选择我们刚才创建的python环境。

然后Flask实质上是python的一个包,和你们之前用的pandas,numpy之类的都差不多!

03.Linux环境:

1. 虚拟环境:

  • 在标准库中没有venv这个包,需要执行以下命令安装python3-venv

sudo apt-get install python3-venv
  • 创建虚拟环境的命令模式如下:

python3 -m venv virtual-environment-name
# -m venv 选项的作用是以独立的脚本运行标准库中的venv包,后面的参数是虚拟环境的名称。
# 确保当前目录是在flasky
python3 -m venv venv

执行上面的命令之后,会出现一个名为venv的子目录,这里就是全新的虚拟环境,包含这个项目专用的Python解释器。

  • 使用虚拟环境 如果要想使用虚拟环境,首先要先激活虚拟环境,可以使用下面的命令激活虚拟环境

source venv/bin/activate

当然,你聪明的大脑应该可以相出退出虚拟环境的命令:

source venv/bin/deactivate

如果使用的是为微软windows系统,激活命令是:

venv\Scripts\activate
  • 使用pip安装Python包 Python通过包管理器pip安装,所有的虚拟环境都是使用这个工具。

若想要在虚拟环境中安装flask,要确保venv虚拟环境已经激活,然后执行下面命令

(venv) $ pip install flask 

四.Flask工程实践:

01.万物之源Hello World:

然后我们直接新建一个py文件,命名为app.py

然后将下面这一段代码直接给输进去

先不要管什么含义,先输进去再说!!

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello World</h1>'

if __name__ == "__main__":
    app.run(port=80)

输入,然后运行,

运行你可以直接正常运行Shift+Ctrl+F10或者是在终端里面进行输入:

flask run

值得注意的是,你首先要指定环境变量:

export FLASK_APP=app.py
flask run

更多详情可以在终端输入:查看

flask run --help
(venv) C:\Users\jiang'xiao\PycharmProjects\pythonProject1213>flask run --help
Usage: flask run [OPTIONS]
  Run a local development server.
  This server is for development purposes only. It does not provide the
  stability, security, or performance of production WSGI servers.
  The reloader and debugger are enabled by default if FLASK_ENV=development or
  FLASK_DEBUG=1.

Options:
  -h, --host TEXT                 The interface to bind to.
  -p, --port INTEGER              The port to bind to.
  --cert PATH                     Specify a certificate file to use HTTPS.
  --key FILE                      The key file to use when specifying a
                                  certificate.
  --reload / --no-reload          Enable or disable the reloader. By default
                                  the reloader is active if debug is enabled.
  --debugger / --no-debugger      Enable or disable the debugger. By default
                                  the debugger is active if debug is enabled.
  --eager-loading / --lazy-loading
            
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值