基本使用

一. 下载

pip3 install flask

二. 快速使用

2.1 方式一 >>> 函数形式

# 导入 flask
from flask import Flask

# 实例化, 参数任意 >>> app = Flask('abcd')
app = Flask(__name__)

# 注册路由, 并写接口函数
@app.route('/index')
def index():
    return 'hello flask'

# 启动项目
if __name__ == '__main__':
    app.run()

2.2 方式二 >>> 类形式

from flask import Flask
from flask.views import MethodView

app = Flask(__name__)

class LoginView(MethodView):
    def get(self):
        return 'get 请求'

    def post(self):
        return 'post 请求'

app.add_url_rule('/login', view_func=LoginView.as_view('login'))

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

三. 小案例

3.1 py 文件

# 导入对应的需求
from flask import Flask, request, render_template, redirect, session

app = Flask(__name__)

# 修改代码将不需要重启
app.debug = True

# 使用 session 必须要设置的
app.secret_key = 'bijenfknekfnknsekfsesfesf'

user = [
    {'id': 1, 'name': '张三'},
    {'id': 2, 'name': '李四'},
    {'id': 3, 'name': '王二'}
]

'''编写装饰器其实有一套固定的代码 不需要做任何理解'''


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')
        if username and password:
            session['is_login'] = True

            return redirect('/index')


@app.route('/index', methods=['GET'])
def index():
    return render_template('index.html', **{'user_list': user})


# /detail/<int:id> 对应的 前端 url 地址
@app.route('/detail/<int:pk>', methods=['GET'])
# 函数的参数 对应 route(路由) 解析参数, 即<int:pk>中的pk, route有几个解析值 函数中就传几个。
def detail(pk):
    return render_template('detail.html', **{'user_detail': user[pk - 1]})


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

3.2 html 文件

"""--------------------------------login.html--------------------------------"""
<body>
<form method="post">
    <label>
        <input type="text" name="username">
    </label>
    <br>
    <label>
        <input type="password" name="password">
    </label>
    <br>
    <input type="submit" value="提交">
</form>
</body>


"""--------------------------------index.html--------------------------------"""
<body>
<p>index 页面</p>
<table>
    {% for v in user_list %}
    <tr>
        <td>{{v.id}}</td>
        <td>{{v.name}}</td>
        <td><a href="/detail/{{v.id}}">查看详情</a></td>                             <!--** 这里的路由跳转 -->
    </tr>
    {% endfor %}
</table>
</body>


"""--------------------------------detail.html--------------------------------"""
<body>
<table>
    <tr>
        <td>{{user_detail.id}}</td>
        <td>{{user_detail.name}}</td>
    </tr>
</table>
</body>


posted @ 2023-05-14 09:28  codegjj  阅读(0)  评论(0编辑  收藏  举报