一个基于flask的web应用诞生 flask和mysql相连(4)

下面来详细讲解“一个基于flask的web应用诞生 flask和mysql相连(4)”的完整攻略,并且包含两条示例说明。

标题

一、前言

在建立web应用的时候,数据的处理是非常重要的一项任务,而flask本身只是一个web应用框架,并不具备直接处理关系型数据库的能力,需要借助mysql等数据库来进行数据的存取操作。而本篇攻略将讲解如何基于flask框架来实现与mysql数据库的连接,实现具有完整的CRUD操作的web应用。

二、主体

  1. 安装mysql

首先需要在本地机器上安装数据库,这里以mysql为例。可以从官网上下载相应版本的mysql即可,需要注意的是在mysql下载和安装完成后一定要打开mysql服务。

  1. 安装pymysql模块

为了能够在python代码中连接mysql数据库,需要安装pymysql模块。可以使用pip安装:

pip install pymysql
  1. 配置数据库

需要在flask应用中配置连接数据库的参数:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/database_name'

其中,username是mysql数据库中的用户名,password是mysql数据库中对应的密码,localhost是数据库服务器的地址,database_name是待连接的数据库名称。

  1. 编写数据模型

在应用中,需要定义好将来要使用的表结构。可以使用flask_sqlalchemy扩展来实现ORM(Object Relational Mapping),也可以直接使用mysql-connector-python库来操作数据,例如:

import pymysql
class Database:
    def __init__(self):
        self.host = "localhost"
        self.user = "root"
        self.password = ""
        self.database = "test"
        self.conn = pymysql.connect(self.host, self.user, self.password, self.database)
        self.cursor = self.conn.cursor()
    def list_all_users(self):
        self.cursor.execute("SELECT * FROM users")
        rows = self.cursor.fetchall()
        return rows
    def add_user(self, name, email, password):
        self.cursor.execute("INSERT INTO users(name, email, password) VALUES(%s, %s, %s)", (name, email, password))
        self.conn.commit()
  1. 建立API

通过flask框架中的路由装饰器建立相应的API。例如:

@app.route('/users', methods=['GET'])
def list_users():
    db = Database()
    users = db.list_all_users()
    return jsonify(users)

@app.route('/users', methods=['POST'])
def add_user():
    name = request.json['name']
    email = request.json['email']
    password = request.json['password']
    db = Database()
    db.add_user(name, email, password)
    return jsonify({'result': 'success'})

以上两个API用来列出所有用户和添加新用户。

三、示例说明

在本篇攻略中,我们实现了一个基于flask的web应用,并且成功连接了mysql数据库。以下是两个示例:

  1. 列出所有用户

通过以下链接即可访问,其中host是本地的ip地址,port是监听的端口号。

http://host:port/users
  1. 添加新用户

通过以下命令可以向该web应用中添加新用户:

curl --location --request POST 'http://host:port/users' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Alice",
    "email": "alice@example.com",
    "password": "password"
}'

以上就是此篇攻略的完整过程和两个示例说明。

四、总结

本篇攻略详细介绍了一个基于flask的web应用诞生,其中通过mysql实现了完整的CRUD操作。在实现web应用的过程中,需要先在本地安装mysql,安装pymysql模块,配置连接mysql的参数,定义好将要使用的数据结构和建立相应的API。我们还通过两个示例来演示web应用的使用方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个基于flask的web应用诞生 flask和mysql相连(4) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • python miniWeb框架搭建过程详解

    当我们要搭建自己的网站,动态web框架是不可或缺的。Python是一种非常流行的编程语言,它拥有丰富的web框架,比如Flask、Django等。而如果我们想要更深入了解web框架的原理,也可以尝试手动搭建一个miniWeb框架。下面,我们将分为以下几个步骤,详细讲解Python miniWeb框架的搭建过程: 搭建服务器 首先,我们需要一个能够运行Pyth…

    Flask 2023年5月16日
    00
  • Flask框架的学习指南之制作简单blog系统

    下面我将详细讲解 Flask 框架的学习指南之制作简单 blog 系统的完整攻略,并且会提供两个示例说明。 概述 Flask 是一个 Python Web 开发框架,它基于 Werkzeug WSGI 工具和 Jinja2 模板引擎。Flask 提供了简单易用的 API,并且具有易于扩展的灵活性。制作一个简单的 blog 系统是学习 Flask 框架的一个好…

    Flask 2023年5月15日
    00
  • 查看Django和flask版本的方法

    查看Django和Flask的版本可以使用如下命令: 查看Django的版本 python -m django –version 如果你在虚拟环境下使用Django,需要先激活虚拟环境后再执行上述命令,例如: # 激活虚拟环境 source venv/bin/activate # 查看Django版本 python -m django –version …

    Flask 2023年5月15日
    00
  • python unittest实现api自动化测试

    下面我将详细讲解“python unittest实现api自动化测试”的完整攻略,包含两条示例说明。 什么是Python unittest? Python unittest 是 Python 自带的一个测试框架,它可以简化单元测试、集成测试、功能测试等自动化测试任务的编写和管理。它与 Python 的标准库一起发布,无需额外的安装,使用起来也非常简单。Pyt…

    Flask 2023年5月15日
    00
  • flask的orm框架SQLAlchemy查询实现解析

    下面我会详细讲解如何使用flask中的ORM框架SQLAlchemy进行查询,并附上两个示例。 一、什么是ORM框架? ORM (Object-Relational Mapping) 是对象关系映射的缩写,是指通过将数据库中的关系数据转换为对象模型,将程序中的对象模型通过映射转换成关系数据。本质上,ORM框架是一种工具,用于连接Python对象和数据库表之间…

    Flask 2023年5月15日
    00
  • 深入了解Python Flask框架之蓝图

    下面是“深入了解Python Flask框架之蓝图”的完整攻略: 什么是Flask蓝图(Blueprint)? 在基于Flask框架开发应用程序时,不可避免的会遇到一些问题,比如应用程序的规模逐渐增大,导致代码逐渐复杂,并且难以进行维护。此时,就需要考虑对应用程序进行模块化分解,以便更好地将其组织起来。这就是Flask蓝图出现的原因。 蓝图是一种特殊的Fla…

    Flask 2023年5月15日
    00
  • YOLOv5部署到web端详细过程(flask+js简单易懂)

    我将为您详细讲解“YOLOv5部署到web端详细过程(flask+js简单易懂)”的完整攻略。过程中将会包含两条示例说明。 YOLOv5部署到web端详细过程(flask+js简单易懂) 1. 简介 本教程将介绍如何将YOLOv5模型部署到web端,使用Flask作为后端框架和JavaScript作为前端框架,在网页上完成检测并展示结果。我们将提供两个示例:…

    Flask 2023年5月15日
    00
  • Flask项目中实现短信验证码和邮箱验证码功能

    以下是“Flask项目中实现短信验证码和邮箱验证码功能”的完整攻略: 短信验证码功能的实现 调用短信API接口 首先,需要找到一个靠谱的短信API接口。可以通过第三方短信服务商提供的短信API接口来发送短信验证码。 以阿里云为例,可以借助阿里云的短信服务平台实现。 import json from aliyunsdkcore.client import Ac…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部