zoukankan      html  css  js  c++  java
  • Flask之快速入门

    一、初识Flask

    1、安装Flask

    (flask_study) C:UsersAdministrator>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
  • 相关阅读:
    Ralasafe基于策略模型
    如何让Oracle表字段自动增长
    Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
    GridView的DataFormatString参考
    解决.NET连接Oracle数据库的一些问题(转)
    C# WinForm开发系列 DataGridView
    C# 插件式程序开发
    Oracle中“字符串中的字符大小写敏感处理方法”
    做一个项目,平时都用到哪些工具提高效率(中)
    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了(转)
  • 原文地址:https://www.cnblogs.com/shenjianping/p/13185435.html
Copyright © 2011-2022 走看看