flask web学习记录(1)

xiaoxiao2025-10-26  10

一直想做一整套的智能家居,顺便当作毕业设计,其中就有一个控制端,要能用web控制,安卓端控制。就选择了学这。写这个,记录一下。学的书是Flask Web开发 基于python的web应用开发实战【美】Miguel Grinberg著,安道译。

首先介绍一下。Flask是一个使用python编写的web应用框架。

使用的是python3.6,IDE是pychrm。

首先呢,要新建一个项目,再设置,再Projrct Interpreter中增加所需要的package。flask是必须的鸭。

初始化

from flask import Flask app = Flask(__name__)

路由和视图函数

@app.route('/') def index(): return '<h1>Hello World</h1>' @app.route('/user/<name>') def user(name): return '<h1>Hello, %s !</h1>' %name

启动服务器

if __name__ == '__main__': app.run(debug=True)

然后运行,点击127.0.0.1:5000会出来一个网页,显示Hello World。

更改地址为127.0.0.1:5000/user/Bee

(Bee可以更改为别的名字),会出现Hello, Bee!

接下来是模板。Jinja2模板引擎

这个需要增加render_template

from flask import Flask,render_template app = Flask(__name__) @app.route('/') def index(): return render_template("index.html") @app.route('/user/<name>') def user(name): return render_template('user.html',name=name) if __name__ == '__main__': app.run(debug=True)

模板文件实在templates中,需要自己创建模板文件。一个是index.html内容是

<h1>Hello World</h1>

另一个是user.html,内容是

<h1>Hello,{{name}}!</h1>

运行后效果其实跟第一个是一样的。

render_template函数的第一个参数是模板的文件名,随后的参数就是健对值。在这个例子中,就是收到一个名为name的变量。左边的name表示参数名,右边的name表示同名参数的值。

变量:

在模板中使用的{{name}}结构表示一个变量,是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取

Jinja2变量的过滤器

过滤器名说明safe渲染值时不转义capitalize把值的首字母转换为大写,其他字母转换为小写lower把值转换成小写形式upper把值转换成大写形式title把值中每个单词的首字母都转换成大写trim把值的首尾空格去掉striptags渲染之前把值中所有的HTML标签都删掉

默认情况下,出于安全考虑,Jinja2会转义所有变量。

控制结构。抄下几个例子。

条件控制语句

{% if user %} Hello,{{ user}}! {% else %} Hello, Stranger! {% endif %}

for循环

<ul> {% for comment in comments %} <li>{{comment}}</li> {% endfor %} </ul>

宏(没搞清楚)就不写上了。

接下来是使用Flask-Bootstrap需要在设置里面安装。首先依旧是导入,初始化

from flask_bootstrap import Bootstrap from flask import Flask,render_template app=Flask(__name__) bootstrap = Bootstrap(app)

遇到一些问题,先写这么多。

转载请注明原文地址: https://www.6miu.com/read-5038538.html

最新回复(0)