Python笔记 之 Flask模块简介

Flask是Python一个轻量级的Web应用框架,适合一些分层比较少,开发成本低,逻辑不怎么复杂的web项目。
pip下载Flask包后,再使用pycharm创建项目时选择flask可以生成架构。
架构包含 :

  • 存放html模板的文件夹(默认为templates)
  • 存放静态文件资源的文件夹(默认为static)
  • 项目程序文件(默认为run.py)

路由及配置

项目自动生成的run.py文件。

from flask import Flask  
  
app = Flask(__name__)  
  
  
@app.route('/')  
def hello_world():  
   return 'Hello World!'  
  
  
if __name__ == '__main__':  
   app.run()
  • 配置项
    app = Flask(__name__) 以默认选项配置相关路径,如有需求可使用参数指定特殊路径:
app=Flask(__name__,  
        template_folder='./templates',  
        static_folder='./static',  
        static_url_path='./templates'  
        )

template_folder : 指定存放html模板的文件夹(默认为templates)
static_folder : 指定存放静态文件资源的文件夹(默认为static)
static_url_path : 指定静态文件的访问路径(默认为static)

  • 路由
    @app.route('/') 根据相对路径访问特定代码段及HTML文件。
    例如:
#通过访问路劲获取字符串参数  
@app.route('/user/<name>')  
def welcome(name):  
   return '你好,%s。'%name

运行run.py后即可通过在浏览器输入http://127.0.0.1:5000/user/lilei访问welcome函数,在网页上显示‘你好,lilei。’

  • 运行
    [[Flask app.run参数]]
    app.run()运行程序。
    指定参数运行程序:
app.run(debug=True,  
      host='192.168.1.10',  
      port='5050',  
      threaded=True  
      )

debug:指定开启debug模式。
host:指定访问主机的Ip。
port:指定主机访问端口。
threaded:指定开启多线程。

模板template

使用flask模块的render_template对’/templates’文件夹下的’tasks.html’进行渲染。
render_template支持参数的传入及对html文件内的python语句进行解析。
如下,在run.py定义三个参数time、name、task,将三个参数传给task.html,并通过render_template解析参数并返回html渲染结果:

from flask import render_template
from datetime import date

@app.route('/tasks')  
def task():  
   time = date.today() #普通变量  
   names = ['小张','小王','小李']#列表类型  
   tasks = {'任务':'打扫卫生','时间':'3小时'}  
   return render_template('tasks.html',day=time,users=names,tasks=tasks)

render_template通过{{变量名}}访问变量,通过{%for/if%}和{%endfor/endif%}进行遍历/判断,通过’|过滤器(参数)'对参数进行处理。
tasks.html文件内容如下:

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Welcome</title>  
</head>  
<body>  
今天是{{day}},欢迎光临。  
    今天值班的有:<br/>  
    <!--用大括号和百分号括起来的是控制结构,还有if语句-->  
    {% for user in names %}  
       <li> {{user}} </li>  
    {% endfor%}  
    任务:<br/> <!--如何在页面打印表格,以及如何迭代-->  
    <table border="1">  
        {% if tasks['时间']==day|string %}  
            {% for key,value in tasks.items()%}  
                <tr>  
                    <td>{{key}}</td>  
                    <td>{{value}}</td>  
                </tr>  
            {% endfor%}  
        {% else %}  
            <tr>  
                <td>今日空闲</td>  
            </tr>  
        {% endif %}  
    </table>  
</body>  
</html>

常见过滤器:
常见的过滤器有:

  • capitalize 首字符变大写,其他变小写
  • lower 将值转换为小写
  • upper 将值转换为大写
  • title 将值中的每个单词首字符变大写
  • trim 去掉值两端的空格
  • default(‘xx’) 如果变量不存在,将采用default中的值作为默认输出
  • truncate(num[,bool]) 截取指定长度字符串,后面使用…显示

常见的逻辑语句

  • if … else 结构
    {% if 条件 %} … {% else %} … {% endif %}
  • for循环结构
    {% for 变量 in 元组|列表|字典 %} … {% endfor %}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值