Flask框架(一)—— Flask简介

目录

  • Flask框架介绍

    • 一、Flask简介
    • 二、flask安装与使用
      • 1、安装
      • 2、使用
      • 3、简单案例——flask实现用户登录

Flask框架介绍

一、Flask简介

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

“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。

默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用

二、flask安装与使用

1、安装

pip3 install flask

2、使用

from flask import Flask

# 实例化产生一个Flask对象
app = Flask(__name__)

# 将 ‘/‘和视图函数hello_workd的对应关系添加到路由中
@app.route(‘/‘)
def func():
    return ‘hello world!‘

if __name__ == ‘__main__‘:
    app.run()  # 最终调用了run_simple()

3、简单案例——flask实现用户登录

(1)main.py

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

app = Flask(__name__)

app.debug = True

app.secret_key = ‘asdfghjkl‘    # session必须要写上secret_key,session加密所用的盐

USER_INFO = {
    1: {‘name‘: ‘张三‘, ‘age‘: 18, ‘gender‘: ‘男‘, ‘text‘: "张三详情"},
    2: {‘name‘: ‘李四‘, ‘age‘: 44, ‘gender‘: ‘女‘, ‘text‘: "李四详情"},
    3: {‘name‘: ‘王五‘, ‘age‘: 23, ‘gender‘: ‘女‘, ‘text‘: "王五详情"},
}

# 登录认证装饰器
def login_auth(func):
    def inner(*args, **kwargs):
        if not session.get(‘name‘):
            return redirect(‘/login‘)

    return inner

@app.route(‘/login‘, methods=[‘GET‘, ‘POST‘])
def login():
    if request.method == ‘GET‘:
        return render_template(‘login.html‘)

    else:
        name = request.form.get(‘name‘)
        pwd = request.form.get(‘pwd‘)
        if name == ‘wl‘ and pwd == ‘123‘:
            session[‘user‘] = name
            return render_template(‘user_info.html‘, user_info=USER_INFO)
        else:
            return render_template(‘login.html‘, error=‘用户名或密码错误‘)

@app.route(‘/userdetail/<int:id>‘, methods=[‘GET‘])
@login_auth
def userdetail(id):
    user = USER_INFO.get(id)
    if user:
        return render_template(‘userdetail.html‘, user=user)
    else:
        return ‘该用户不存在‘

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

(2)templates

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post">
    <p>用户名:<input type="text" name="name"></p>
    <p>密码:<input type="password" name="pwd"></p>
    <input type="submit"><span>{{error}}</span>
</form>
</body>
</html>

user_info.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户信息</title>
</head>
<body>
<table border="1px">
    <thead>
    <tr>
        <th>id</th>
        <th>姓名</th>
        <th>详情</th>
    </tr>
    </thead>
    <tbody>
        <!-- 这里的items要加括号,否则报错 -->
    {% for k,v in user_info.items() %}
    <tr>
        <td>{{k}}</td>
        <td>{{v.name}}</td>
        <td><a href="/userdetail/{{k}}">查看详情</a></td>
    </tr>
    {% endfor %}

    </tbody>
</table>
</body>
</html>

userdetail.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>详情</title>
</head>
<body>
<table border="1px">
    <thead>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>信息</th>

    </tr>
    </thead>
    <tbody>
    <tr>
        <td>{{user.name}}</td>
        <td>{{user.age}}</td>
        <td>{{user.text}}</td>
    </tr>

    </tbody>
</table>
</body>
</html>

原文地址:https://www.cnblogs.com/linagcheng/p/10396063.html

时间: 2024-11-09 23:42:33

Flask框架(一)—— Flask简介的相关文章

flask框架----基于flask的扩展实现的简单的页面登录

废话不多说,直接上代码 from flask import Flask,render_template,request,redirect,session app = Flask(__name__,template_folder='templates') app.secret_key = "sdsfdsgdfgdfgfh" @app.before_request def process_request(): if request.path=="/login": ret

flask框架----整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

Flask 框架小记

Flask 框架小记 Flask 实例 创建示例的代码 from flask import Flask # __name__ 是模块名, 用于反射导入模块 app = Flask(__name__, import_name, static_url_path=None, static_folder='static', static_host=None, host_matching=False, subdomain_matching=False, template_folder='templates

三分钟学会API接口设计 之 Compass 的Restful API 快速入门指南 -- 使用Flask框架

声明: 本博客欢迎转载,但请保留原作者信息! 作者:曾国仕 团队:华为杭州OpenStack团队 引子 大部分开源框架基本上都是使用Curl + RPC的方式构筑系统,以提供对外\对内的交互能力. 这种设计,本人认为更多地是出于层次化与模块化设计的考量,简化整个架构,使得开发轻量简单化. 本文主要介绍Compass的REST API的设计与实现. 通过本文档,读者至少能快速搭建一个属于自己的REST API 框架,并且能够基于该框架进行功能扩展以建立一个完整的系统. Compass的结构简介 图

Python_WEB框架之Flask

前言: Django:1个重武器,包含了web开发中常用的功能.组件的框架:(ORM.Session.Form.Admin.分页.中间件.信号.缓存.ContenType....): Tornado:2大特性就是异步非阻塞.原生支持WebSocket协议: Flask:封装功能不及Django完善,性能不及Tornado,但是Flask的第三方开源组件比丰富:http://flask.pocoo.org/extensions/ Bottle:比较简单: 总结: 都不是我写的!!!不论优劣,不同的

Python之flask框架

Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档,大部分代码引用自官方文档. 安装flask 首先我们来安装Flask.最简单的办法就是使用pip. pip install flask 然后打开一个Python文件,输入下面的内容并运行该文件.然后访问localhost:5000,我们应当可以看到浏览器上输出了hello world. from flask import Flask app = Flask(

python高级之Flask框架

目录: Flask基本使用 Flask配置文件 Flask路由系统 Flask模版 Flask请求与响应 Flask之Session Flask之蓝图 Flask之message 中间件 Flask插件 一.Flask基本使用 1.flask简介 lask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功

Flask框架—session组件详解

一.flask session简介 flask中session组件可分为内置的session组件还有第三方flask-session组件,内置的session组件缺点: 功能单一 session是保存在浏览器中的cookie中,不安全, 大小有限制 而第三方插件flask-session可支持redis.memcached.文本等session的存储. 二.内置session处理机制 Cookie与Session 我们回顾一下cookie和session知识 Cookie Cookie意为“甜饼

flask框架初识 1

------------恢复内容开始------------ 1.flask的简介以及flask启动的本质 2.flask的4剑客 3.flask配置文件的4种方式 4.路由本质 5.cbv初识,路由的本质,cbv详解 一.flask的简介以及flask启动的本质 什么是flask: Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或,Web服务,在介绍Flask之前首先来聊下它和Django的联系以及区别,django个大而全的web框架,它内置