Python_Flask01

发布于:2024-12-06 ⋅ 阅读:(23) ⋅ 点赞:(0)

所有人都不许学Java了,都来学Python!

如果不来学的话请网爆我的老师---蔡老师

Flask的前世姻缘

我不知道,没啥用,要学好这个框架,其实多读书,多看报就行了,真心想了解的话!

Welcome to Flask — Flask Documentation (3.1.x) (palletsprojects.com)icon-default.png?t=O83Ahttps://flask.palletsprojects.com/en/stable/

创建Flask项目

第一步

点击File,点击NewProject

第二步

 创建成功

简单不?都给我去学习Python!!!!(可以网爆我的老师,但是不能黑我的哥哥)

学习Flask

整体代码

from flask import Flask
from flask import render_template
from flask import request

app = Flask(__name__)


@app.route('/')
def hello_world():  # put application's code here
    return render_template('test.html')


@app.route('/detail/<id>/<name>')
# http://127.0.0.1:8085/detail/5/6666 这种形式
def getId(id, name):
    return render_template('test.html', id=id, name=name)


@app.route('/test')
# http://127.0.0.1:8085/test?id=5&name=box&password=666  使用的是query的拼接方式
# 使用的request中的args.get('字段')方式获取这个字段的值
def getQuery():
    id = request.args.get('id')
    name = request.args.get('name')
    password = request.args.get('password')
    return render_template('user.html', id=id, name=name, password=password)


# 这个地方主要是继承的使用方式
@app.route('/child')
def getExtend():
    return render_template('child.html')


@app.route('/static')
def getImage():
    return render_template('image.html')


if __name__ == '__main__':
    # 启动方法
    app.run()

解释

根路径

@app.route('/')
def hello_world():  # put application's code here
    return render_template('test.html')

假设服务是http://127.0.0.1:8085

那输入上面的这个路径就会使用render_template工具,随后去寻找test.html文件,将test.html文件的内容进行渲染在页面,下面提供的是test.html文件的内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>你好</div>
    <div>{{ id }}</div>
 <div>{{ name }}</div>
</body>
</html>

传参方式

@app.route('/detail/<id>/<name>')
# http://127.0.0.1:8085/detail/5/6666 这种形式
def getId(id, name):
    return render_template('test.html', id=id, name=name)


@app.route('/test')
# http://127.0.0.1:8085/test?id=5&name=box&password=666  使用的是query的拼接方式
# 使用的request中的args.get('字段')方式获取这个字段的值
def getQuery():
    id = request.args.get('id')
    name = request.args.get('name')
    password = request.args.get('password')
    return render_template('user.html', id=id, name=name, password=password)

不能说好理解,只能说非常容易,主要就是request工具获取参数和路径后面直接拼接参数的两种获取方式

加载静态资源

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/index.css') }}">
</head>
<img class="image" src="{{ url_for('static',filename='image/react.png') }}" />
</body>
</html>

使用的方式是url_for的方式去展示静态资源

语法(拿html解释)

<img class="image" src="{{ url_for('static',filename='image/react.png') }}" />

 继承

father.html

<!-- base.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{% block title %}My Website{% endblock %}</title>
</head>
<body>
    <header>
        <h1>欢迎来到我的网站</h1>
    </header>

    <main>
        {% block content %}
        <!-- 默认内容 -->
        {% endblock %}
    </main>

    <footer>
        <p>版权所有 &copy; 2023</p>
    </footer>
</body>
</html>

child.html

<!-- child.html -->
{% extends "father.html" %}

{% block title %}子页面标题{% endblock %}

{% block content %}
    <h2>这是子页面</h2>
    <p>这里是子页面的内容。</p>
{% endblock %}

测试效果:访问http://127.0.0.1:8085/child

# 这个地方主要是继承的使用方式
@app.route('/child')
def getExtend():
    return render_template('child.html')


网站公告

今日签到

点亮在社区的每一天
去签到