码迷,mamicode.com
首页 > 其他好文 > 详细

Flask之快速入门

时间:2020-06-24 00:14:06      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:color   style   too   pen   pos   img   rap   users   click   

一、初识Flask

1、安装Flask

(flask_study) C:\Users\Administrator>pip install flask

2、简单实例

from flask import Flask

#实例化Flask对象
app = Flask(__name__)

@app.route(/)
def index():
    return "index"

if __name__ == __main__:
    app.run()

这样简单的几行代码就可以进行运行,默认启动的端口时5000端口。

二、快速入门

学过Django框架的小伙伴知道Djanog是很全面的,包括有自己的模板等功能,那么在Flask中也有。现在可以通过一个简单的登录实例来进行学习了解一下。

from flask import Flask,request,render_template,redirect,session,url_for
import functools

app = Flask(__name__)

user_data = {
    1:{name:张三,age:23,gender:},
    2:{name:李四,age:18,gender:},
    3:{name:王五,age:35,gender:},
}

def auth(func):
    @functools.wraps(func) #保留func元信息
    def innder(*args,**kwargs):
        user = session.get(user_info)
        if not user:
            return redirect(url_for(login))  # 反向生成url
        return func(*args,**kwargs)
    return innder

@app.route(/detail/<int:id>,methods=[GET])
@auth
def detail(id):
    user = user_data.get(id)
    return render_template(detail.html,user=user)

@app.route(/index)
@auth
def index():
    return render_template(index.html,user=user_data)

@app.route(/login,methods=[GET,POST],endpoint=login)
def login():
    if request.method == GET:
        return render_template(login.html)
    else:
        user = request.form.get("user")
        pwd = request.form.get("pwd")
        if user == "root" and pwd == "123":
            session["user_info"] = user
            return redirect(/index)
        return render_template(login.html)

if __name__ == __main__:
    app.run()

  上面在这个.py文件下新建一个templates文件夹,然后再里面新建一个login.html、index.html这样才能找到这个文件。因为在Flask这个类中默认模板的路径就是在同级的templates文件夹下找模板文件。

技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post">
    <input type="text" name="user" value="用户名"/>
    <input type="text" name="pwd" value="密码"/>
    <input type="submit" value="登录">
</form>

</body>
</html>
login.html
技术图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% for k,v in user.items() %}
    <li>{{v.name}}-{{v["name"]}}-{{v.get("name")}}</li>
    {% endfor %}
</body>
</html>
index.html

 

Flask之快速入门

标签:color   style   too   pen   pos   img   rap   users   click   

原文地址:https://www.cnblogs.com/shenjianping/p/13185435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!