初识flask,搭建第一个自己的网页

前言

本篇依然是围绕着前面说过的文章进行知识展开,既然项目中涉及到网页,咱们就从网页开始讲起吧!

Python 在 9102 年作为一门热火朝天的语言,自然在建网站方面有着许多优秀的 web 框架,而笔者这里的选型则是 flask。

PS:web 框架,给新手朋友们解释下。在生活中,我们都大致了解过建楼的操作,建造楼房的过程中,一般都是先将其骨架搭建起来,在进行房屋细节加工。计算机中的 web 框架,就类似于骨架,通过某一框架来实现整体架构的搭建,至于房屋细节的实现,由你完成。

为什么选择 flask ?

在 Python 语言中,有许多优秀的 web 框架,列举几个非常知名的:

  1. 各框架的读音
  • Django (酱狗) 无中文含义
  • Tornado (托内斗) 中文,龙卷风
  • Web.py (外部点皮外) 无中文含义
  • Flask (肤蜡死磕) 中文,烧瓶
  1. 各框架的简介
  • Django 市场占有率极高的框架,适合大项目,官方文档齐全
  • Tornado 异步高性能框架,包含许多底层细节,少而精
  • Web.py 作者过于nb,很早被上帝请去喝茶,停止维护了
  • Flask 微框架,轻量级,扩展插件较多

经以上对比,Django 适合大项目,Tornado 适合高访问量项目,Web.py 之前笔者工作的时候用过,停止维护,没有什么扩展组件可以利用。对于本项目而言,最合适的就只有 flask 啦!~

PS:追溯到最初,Flask 诞生于 Armin Ronacher 在 2010 年愚人节开的一个玩笑。后来,它逐渐发展成为一个成熟的 Python Web 框架,越来越受到开发者的喜爱。

额外普及一个 web 知识点 - MVC

(如果不是专业人员,可以忽略这个理论概念!)

这是一个和 web 应用相关的模式,不论是 java 开发(java 中的 web 框架采用就是这种模式),还是 python 开发。

M:Model ==> 与数据库相关的模型层

V:Views ==> 网页的地址,以及渲染网页等

C:Controller ==> 访问网页地址后,读取页面数据,调用业务逻辑

安装 flask

新的项目,需要依赖新的环境,所以使用 pipenv 来为新项目创建一个新环境。不了解 pipenv 的,可以回顾下​​《你应该了解的python虚拟环境与依赖管理》​​。

进入 https://pypi.org/ ,搜索 flask 。

初识flask,搭建第一个自己的网页_python

pip list # 查看有没有 pipenv

pipenv shell # 激活项目虚拟环境,若无则创建

pip install Flask # 安装 flask

初识flask,搭建第一个自己的网页_搜索_02

上面安装好 flask ,可以看到还有两个库也被安装了。我们打开 flask 的官方文档(自行搜索 flask 的中文文档)看看:

初识flask,搭建第一个自己的网页_flask入门_03

Flask 依赖 Jinja 模板引擎和 Werkzeug WSGI 套件。所以你会看到安装后多了这两个库。

第一个 web 应用

学习框架,第一个 demo 必然是从官网去寻找啦。自行搜索官网文档,可以看到简易 demo 。

初识flask,搭建第一个自己的网页_搜索_04

其实官方文档写的已经很详细了,我这里能做的是什么呢?改写 demo 再来演示下。。。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return '泥豪,世界!'

if __name__ == "__main__":
app.run(host='127.0.0.1', port=8080)

改了成这样,然后 pycharm 跑下就可以看到:

初识flask,搭建第一个自己的网页_flask入门_05

让我们访问下网页地址:http://127.0.0.1:8080/

初识flask,搭建第一个自己的网页_python_06

第一个自己的网页搭建完了!是不是很简单呢。。当然,如果是自己开发的情况下,可以加上以下 debug 参数,每次修改不用手动重启,开启后,可以观察控制台日志。

app = Flask(__name__)
app.config['DEBUG'] = True # 开启 debug

上面只是个小例子,你也可以这么皮一下:

from flask import Flask

app = Flask(__name__)
app.config['DEBUG'] = True

@app.route('/')
def hello_world():
return '<h1>泥豪,世界!</h1>\
<img src="https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=2700654223,2122220372&fm=26&gp=0.jpg"> \
<img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=350647292,841711&fm=27&gp=0.jpg"> \
<img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4121236200,1201346551&fm=27&gp=0.jpg">'

if __name__ == "__main__":
app.run(host='127.0.0.1', port=8080)

初识flask,搭建第一个自己的网页_flask入门_07

在 return 的时候直接用 html 返回, flask 默认是支持解析的。

关于代码的讲解,大家自行官网学习即可,不做赘述讲解,官方文档解释的很清楚了。

顺便在普及个知识,如果你的电脑和你的手机处于同一 wifi 下(同一局域网)。电脑上你访问的地址是 127.0.0.1:8080 ,那么当你 web 项目启动时,手机也是可以访问的!

将代码 ip 位置改为:

if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)

查看电脑的内网 ip 地址,打开 cmd (windows 快捷键是 win+r,输入 cmd 即可),输入 ipconfig :

初识flask,搭建第一个自己的网页_Web_08

找到,因为我这里连接的是 wifi ,所以:

初识flask,搭建第一个自己的网页_python_09

接下来打开手机浏览器,访问 http://192.168.0.106:8080/ 。如下(小米浏览器还默认网站不安全,给了个红叹号!):

初识flask,搭建第一个自己的网页_搜索_10

总结

大体上介绍了下 flask 的入门简单小 demo。后面会慢慢把 flask 一步步拓展起来,入门文章,看起来应该非常轻松叭!