flask web学习记录(1)

一直想做一整套的智能家居,顺便当作毕业设计,其中就有一个控制端,要能用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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值