Flask入门demo

傅峰
2023-12-01

最近接触了机器学习项目线上服务部署相关的东西,想着做一个小的完整的机器学习项目类似于电影推荐那种,考虑到用flask来实现,所以记录下flask的相关知识。

1.flask介绍

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器。

2. hello world

环境:pycharm
主程序:

# coding=utf-8
# hello world
from flask import Flask
#创建应用程序
app = Flask(__name__)

# 写一个函数来处理浏览器发送过来的请求
@app.route("/")     #当访问网址时,默认执行下面函数
def index():
    return 'weclome to Rocket!!!'

@app.route("/roc")     #路由功能
def index1():
    #这里处理业务逻辑
    return '欢迎你!!!'

@app.route("/roc/qq")     
def index2():
    #这里处理业务逻辑
    return 'hahaha!!!'

if __name__ == "__main__":
    app.run()    #启动应用程序

3.登录功能

带html
主程序:

# coding=utf-8
# hello world
from flask import Flask,render_template,request
#创建应用程序
app = Flask(__name__)

# @app.route('/')
# def index():
    # return render_template("Hello.html")    #此时会自动找templates文件夹里面的Hello.html

# 把一个变量发送到页面
@app.route('/')
def index():
    # 字符串
    s = '你好我好大家好!'
    # 列表
    list =["人工智能","AI","ML","推荐算法"]
    return render_template("Hello.html",jay = s,lst = list)  

  
# 从页面接收数据
# 登录验证
@app.route('/val')
def index1():
    return render_template("login.html")

@app.route('/login',methods = ['POST'])
def login():
    # 接收数据
    username = request.form.get("username")
    password = request.form.get("pwd")
    if username == '###' and password == '123':
        return "sucessfully!!!"
    else:
        return render_template("login.html",msg = '登录失败,请重试!')

if __name__ == "__main__":
    app.run(debug=True)    #启动应用程序,不需要重启程序,刷新页面即可

hello.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="'#">{{jay}}</a>  #超链接
<hr/>
{{lst}}
<hr/>
{% for item in lst %}
我:{{item}}
{% endfor %}
</body>
</html>

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="login" method="POST">
        用户名 <input type="text" name="username"><br/>
        密码 <input type="password" name="pwd"><br/>
        <input type="submit" value="登录"><br/>
        {{msg}}
    </form>
</body>
</html>
 类似资料: