Flask基本使用


官方文档:https://dormousehole.readthedocs.io/

参考文档:https://www.yiibai.com/flask/flask_environment.html

什么是Flask?

Flask是一个轻量级的可定制框架,是目前十分流行的web框架 ,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。

简单样例

from flask import Flask

app = Flask(__name__) #实例化

#Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。
@app.route('/') #'/'URL与下面定义的test()方法绑定
#如果是@app.route('/hello')则访问的URL是"http://127.0.0.1:5000/hello"
def test():
    return 'hello world'

if __name__ == '__main__':
    app.run(host="127.0.0.1",port=5000) #host,port为默认值

结果如下:

Flask变量规则

通过把URL的一部分标记为 <variable_name> 就可以在URL中添加变量。标记的部分会作为关键字参数传递给函数。 通过使用 <converter:variable_name >,可以选择性的加上一个转换器,为变量指定规则。

from flask import Flask
from markupsafe import escape

app = Flask(__name__)

@app.route('/user/<username>')
def show_user(username):
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post %d' % post_id

@app.route('/path/<path:subpath>')
def show_subpath(subpath):
    # show the subpath after /path/
    return 'Subpath %s' % escape(subpath)

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

结果如图:

转换器类型:

类型解释
string(缺省值) 接受任何不包含斜杠的文本
int接受正整数
float接受正浮点数
path类似 string ,但可以包含斜杠
uuid接受 UUID 字符串

唯一的URL/重定向行为

from flask import Flask
from markupsafe import escape

app = Flask(__name__)#实例化

@app.route('/projects/')
def projects():
    return 'The project page'

@app.route('/about')
def about():
    return 'The about page'

if __name__ == '__main__':
    app.run(host="127.0.0.1",port=5000)#host,port为默认值

访问http://127.0.0.1:5000/projects时末尾没有/,Flask 会自动进行重定向,帮你在尾部加上一个斜杠。

访问http://127.0.0.1:5000/about时,如果加上/ 会得到一个 404 错误 。这样可以保持 URL 唯一,并帮助 搜索引擎避免重复索引同一页面。

结果如下:

HTTP方法

建立一个login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
 <body>
      <form action = "http://localhost:5000/login" method = "post">
         <p>输入姓名:</p>
         <p><input type = "text" name = "name" value=""/></p>
         <p><input type = "submit" value = "提交" /></p>
      </form>
   </body>
</html>

建立一个demo.py

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
    return 'hello %s' % name

@app.route('/login',methods = ['POST', 'GET'])
def login():
    if request.method == 'POST':
        user = request.form['name']
        return redirect(url_for('success',name = user))
    else:
        user = request.args.get('name')
        return redirect(url_for('success:',name = user))

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

运行demo.py后浏览器打开login.html,输入名字点击提交。

结果如图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值