Web框架-Flask框架

Web框架-Flask框架

什么是Web框架

Web框架就是使开发者能够快速开发Web应用程序的一套功能代码

开发者只需要按照框架要求,在指定位置上写上逻辑代码即可

为什么要使用Web框架

如果采用成熟、稳健的框架,那么开发者就可以把精力放到写逻辑代码上,况且框架稳定性和可扩展性都很高,能够降低开发难度,提高开发效率

Flask框架

在这里插入图片描述

查看URL对应的函数

在这里插入图片描述

视图可以返回的数据

1.json数据

在这里插入图片描述

2.重定向函数url_for

在这里插入图片描述
在这里插入图片描述

带有参数的url_for重定向

在这里插入图片描述

Jinja2

使用模板的好处

视图用来负责业务逻辑和数据处理

模板用来展示取到的数据结果

结构清晰,耦合度低

模板的使用

{{}} 来表示变量名,这种 {{}} 语法叫做变量代码块

可以直接使用render_template()返回页面

在这里插入图片描述

在视图函数中添加对数据库的操作

@app.route("/profile_v5/<user_id>")
def profile_v5(user_id):
    # ================= 这里添加新代码 ====================
    # 1. 查询数据库
    # 1.1 创建Connection连接
    conn = pymysql.connect(host='localhost', port=3306, database='flask_1', user='root', password='123456', charset='utf8')
    # 1.2 获得Cursor对象
    cs1 = conn.cursor()
    # 1.3 构造参数列表
    params = [user_id]
    # 1.4 执行select语句,并返回受影响的行数:查询所有数据
    cs1.execute('select * from user where user_id=%s', params)
    # 1.5 获取查询的结果
    result = cs1.fetchone()
    # result = cs1.fetchall()
    print(result)
    # 1.6 关闭Cursor对象
    cs1.close()
    # 1.7 闭Connection对象
    conn.close()

    # 2. 模板渲染
    return render_template("profile.html", xxxx=user_id)

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

Flask使用数据库-SQLAlchemy

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer
from sqlalchemy.orm import sessionmaker

# 链接是需要指定要用到的MySQL数据库
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/flask_1?charset=utf8')
Base = declarative_base()  # 生成SQLORM基类


class User(Base):
    # 对应MySQL中数据表的名字
    __tablename__ = 'user'

    # 创建字段
    id = Column(Integer, primary_key=True)
    user_id = Column(String(50), nullable=False)
    user_name = Column(String(50), nullable=False)
    head_img = Column(String(200))
    short_description = Column(String(300))


@app.route("/profile_v8/<user_id>")
def profile_v8(user_id):
    # 1. 查询数据库
    # 创建session对象
    DBSession = sessionmaker(bind=engine)  # 创建与数据库的会话,返回的是一个类
    session = DBSession()  # 生成链接数据库的实例

    # 获取返回数据的第一行
    obj = session.query(User).filter(User.user_id == user_id).one()
    # 关闭session
    session.close()

    # 2. 模板渲染
    return render_template("profile.html", user_name=obj.user_name, head_img=obj.head_img, short_description=obj.short_description)


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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值