Python之flask使用方法

Python之flask使用方法

代码如下:

"""
Tips:
所有带@app装饰器的函数会自动调用,其他不带装饰器的函数必须手动调用才会执行

"""
# -*- coding:utf-8 -*-
from flask import Flask, Request, render_template, url_for, redirect

__author__ = 'Evan'
app = Flask(__name__, template_folder='templates')  # 初始化Flask,定义模板文件夹为"templates"


# 创建根目录
@app.route('/')
def root_directory():
    # 返回一个字符串到网页
    return "I'm root directory"
    # return redirect(url_for('login'))  # 重定向到login函数


# 创建Login目录
@app.route('/login', methods=['GET', 'POST'])  # 配置访问方式:GET和POST均可访问
def login():
    print('Login method: {}'.format(Request.method))  # 打印请求的方法
    if Request.method == 'GET':
        return 'Request method is GET'
    elif Request.method == 'POST':
        return 'Request method is POST'
    else:
        return 'Request method is {}'.format(Request.method)


# 使用外部文件(外部文件会在template_folder定义的文件夹内查找)
@app.route('/display/')
def display_page():
    # 返回一个html页面
    return render_template('test.html')


# URL字段抓取(格式: <converter:variable_name>)
@app.route('/user/<username>/')
def ask_username(username):
    """
    URL字段抓取用法:
    @app.route('/user/<int:username>/')  # 抓取/user/后面的整形字段,如果不符合规则会报错
    @app.route('/user/<float:username>/')  # 抓取/user/后面的浮点形字段,如果不符合规则会报错
    @app.route('/user/<path:username>/')  # 抓取/user/后面的所有字段(包含/),如果不符合规则会报错
    :param username: 抓取/user/后面的所有字段(不包含/)赋值给username
    :return:
    """
    if username == 'Evan':
        return 'Welcome back'
    else:
        return "Hi {}".format(username)


# 使用url_for动态生成新的URL(原先的URL和更改后的URL都可以访问)
def generate_new_url():
    """
    url_for使用方法:
    param - endpoint: 接受函数名作为参数,为此函数生成新的URL
    param - **values: 接受函数内的形参作为参数,也接受未知变量名,未知变量名会添加到URL末尾作为查询参数
    :return:
    """
    with app.test_request_context():
        print(url_for(endpoint='display_page', username='Evan'))  # 生成新的URL:/display/?username=Evan
        print(url_for(endpoint='ask_username', username='Jane'))  # 生成新的URL:/user/Jane/


def main():
    # app.run(host='0.0.0.0')  # 使服务器可被网络内其他设备访问(不配置host,只能用本地电脑访问)
    app.run(debug=True)  # 启用Debug模式,服务器会在代码修改后自动重新载入(慎用,有安全隐患)


if __name__ == '__main__':
    main()

执行结果:

* Serving Flask app "flask_sample" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 214-366-588
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值