Flask框架详细教程

首先,创建一个Flask的项目,在选择编译环境的时候,可以选择新建一个虚拟的编译环境,关于创建虚拟环境,以前写过一篇博客,需要的可以参考:(4条消息) python搭建虚拟环境_Kisskiss_v的博客-CSDN博客_python虚拟环境搭建

 再项目路径下面新建两个文件夹,一个static用于存放静态文件,默认情况下网站所用到的静态文件资源全部存放到static文件夹下,然后再static文件夹下面还可以创建其他文件夹,将css,js文件区分开来,为了更好的管理文件。

templates模板文件,也就是html文件,需要放到templates文件夹中。 当然在'Flask(__name__,template_folder)'可以来修改模板的 地址,但是不推荐。通过'render_template'来渲染模板。如果想要传递变量到模板中,可以把变量定义成字典,然后在 'render_template'中,通过关键字参数的方式传递过去。'render_ template('',**context)'

在app.py中:

from flask import Flask, jsonify, request, redirect, url_for,render_template
from . import  config

# 使用Flask创建一个app对象,并且传递__name__参数
app = Flask(__name__)

# 所有的配置项都放在config中
app.config.from_object(config)

names = [{"id": 1, "name": "jack"},
         {"id": 2, "name": "rose"},
         {"id": 3, "name": "Chris"},]


#app.route:设置访问的url,这里设置成一个根路径
@app.route("/name/list/")
def book_list():
    return jsonify(names)


# 1.如果只是需要从服务器上获取数据,一般都是用GET请求
# 2.如果前端需要把数据发送给服务器,一般用POST请求
# 3.在@app.route上,添加methods参数,这个参数是一个列表类型,可以传递多个


@app.route("/name/<string:name_id>", methods=['GET', 'POST'])
def name_detail(name_id):
    for name in names:
        if name_id == str(name["id"]):
            return name
    return f"{name_id}的姓名没有找到!"


@app.route("/profile")
def profile():
    #参数传递的两种形式:
    #1.作为url的组成部分:/name/1
    #2.查询字符串:/book?id=1
    user_id=request.args.get("id")
    if user_id:
        return "用户个人中心"
    else:
        # 重定向到index函数的路径下
        return redirect(url_for("index"))


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




config.py:

# Flask中的所有配置项都是大写字母
JSON_AS_ASCII=False

base.html根模块,后面的index.html引用的该模块渲染的页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<!--   {% block title %}{% endblock %}:标题块; -->
    <title>{% block title %}{% endblock %}</title>
    {% block head %}{% endblock %}
</head>
<body>
<ul>
    <li>
        <a href="/">首页</a>
    </li>
    <li>
        <a href="/control">控制</a>
    </li>
    <li>
        <a href="/about">关于</a>
    </li>
</ul>

{% block body %}{% endblock %}

<footer style="background-color: yellow">i am footer</footer>

</body>
</html>

在其他的html模板文件中使用{% extends "base.html"%}将跟文件引入,就可以直接使用模板的元素

<!--引入跟文件-->
{% extends "base.html"%}

<!--引入标题块-->
{% block title %}
<!--   引入后自定义的额外内容-->
    my homepage
{% endblock %}

{% block head %}
    <link rel="stylesheet" href="{{ url_for('static',filename='css/index.css')}}">
{% endblock %}

{% block body %}
    <h1>i am homepage</h1>
{% endblock %}

flask运行程序的几种方式:

1、在app.py可以直接运行程序

2、在控制台输入命令:python app.py

3、官方推荐:

$ export FLASK_APP=app.py

$ python -m flask run --host=0.0.0.0

 在windows上的是set而不是export

4、在控制台输入如下指令:

python manager.py shell

app.run(host=0.0.0.0)

如有错误望指正,谢谢~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值