Flask框架(一)

本文介绍了Flask框架,属于微框架,依赖Werkzeug和Jinja2。讲解了Flask的基本结构,包括导入Flask类,设置路由和视图函数,以及运行应用。讨论了路由变量规则、URL构建与反向URL、HTTP请求方法。此外,还涉及模板渲染、错误处理、变量显示、过滤器和自定义过滤器、模板继承以及宏的使用。最后展示了Flask的初步应用,包括静态目录、模板目录和主函数。
摘要由CSDN通过智能技术生成

一 什么是Flask

  1. Flask框架
    Flask 是一个 web 框架。也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序。这个 wdb 应用程序可以使一些 web 页面、博客、wiki、基于 web 的日历应用或商业网站。
    Flask 属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖于外部库的框架。这既有优点也有缺点,优点是框架很轻量,更新时依赖少,并且专注安全方面的 bug,缺点是,你不得不自己做更多的工作,或通过添加插件增加自己的依赖列表。
  2. Flask框架的依赖性
    Flask 的依赖如下:
    1). Werkzeug 一个 WSGI 工具包
    Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口)。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口
    2). jinja2 模板引擎
    使用模板你可以设置你的页面的基本布局,并提及哪个元素将发生变化。这种方式可以定义您的网页头部并在您的网站的所有页面使它保持一致,如果你需要改变网页头部,你只需要更新一个地方。
    使用模板引擎创建/更新/维护你的应用会节约你很多时间

二 Flask框架的基本结构

  1. 首先导入Flask类
from flask import  Flask
  1. 实例化一个Flask对象
app = Flask(__name__)

其中:__name__是模块的名称或者包的名称
作用:根据这个参数确定flask应用的路径, 从而快速查找模板和html文件的默认路径
模块就是python文件; 包就是目录(跟普通目录多加一个__init __. py)

  1. 设置基本路由:通过路由绑定一个视图函数
@app.route('/')
def index():
    return  "<h1>hello world</h1>"

其中: @app.route(’/’): 告诉Flask哪个URL才能出发对应的函数, 又称为路由
对应定义了一个视图函数, 也就是返回给用户浏览器显示的内容

  1. 运行Flask应用, 可以指定ip和端口
app.run()

当然也可以指定IP和端口
让指定的IP号访问:

app.run('172.25.254.69',9000)

也可以让本机所有的IP号访问:

app.run('0.0.0.0',9000)
  1. 结合在一起,就是Flask最基本的框架
from flask import Flask

fla=Flask(__name__)


@fla.route('/')
def index():
    return 'hello'

fla.run()

运行结果:
在这里插入图片描述

三 路由与变量规则

常见路由规则:
1). url的一部分可以标记为变量<变量名>
2). flask中路由里面的变量常见类型:int,string,float,path,uuid

from flask import Flask

fla=Flask(__name__)

@fla.route('/<int:id>/comments/')
def index(id):
    return '%s index' %(id)

@fla.route('/welcome/<string:user>/')
def welcome(user):
    return 'welcome %s' %(user)

fla.run()

执行结果:
在这里插入图片描述
在这里插入图片描述
指定输入的形式,是字符串,是整形,还是其它

四 URL构建与反向URL

from flask import Flask, request, url_for

app = Flask(__name__)


@app.route('/welcome/<string:user>/')
def welcome(user):
    return user + "用户, 欢迎来到westos"


@app.route('/path/')
def path():
    print(request.headers)
    print(request.method)
    # url_for: 根据函数名, 反向生成url地址
    print("用户正在访问url地址:%s" % (url_for(endpoint="welcome", user="westos")))
    return "用户正在访问url地址:%s" % (url_for(endpoint="welcome", user="westos"))
app.run()

执行结果:
在这里插入图片描述
构建新的URL,访问该URL获得信息
在这里插入图片描述
注意:
1).通过 url_for ,根据函数名,反向构建URL
2).通过 request类,可以得到其头部信息或者访问模式,是 get 或者 post ,等

五 Flask框架的一些问题
前面写过一个简单的HTML页面:
包括(主页,登陆页和注册页)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在通过Flask框架对其进行编辑,让代码更加的简短,让客户端提交的数据到达后台,进行数据处理
简单的判断:
1).用户登陆时的用户名与密码(看其用户名是否是root,密码是否是westos)
2).html页面的异常处理(弹出404报错页面)

from flask import Flask, request, render_template, redirect, url_for, abort

fla=Flask(__name__)

@fla.route('/')
def index():
    return render_template('index.html')

@fla.route('/login/',methods=['GET','POST'])
def login():
    if request.method == 'POST':
        user=request.form['user']
        passwd=request.form['passwd']
        if user == 'root' and passwd == 'westos':
            return redirect(url_for('index'))
        else:
            return render_template('login.html',message='用户名或者密码错误')
    else:
        return render_template('login.html')

@fla.errorhandler(404)
def not_found(e):
    return render_template('404.html')

@fla.route('/user/<int:user_id>')
def user(user_id):
    if 0<int(user_id)<=100:
        return '欢迎访问: %s' %(user_id)
    else:
        abort(404)

fla.run
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值