📜  如何在 Sqlite 表中存储Python函数?

📅  最后修改于: 2022-05-13 01:55:01.222000             🧑  作者: Mango

如何在 Sqlite 表中存储Python函数?

SQLite 是一个包含在 C 库中的关系数据库系统,它的工作方式与 SQL 非常相似。它可以在sqlite3模块的帮助下与Python融合。 Python标准库sqlite3由 Gerhard Häring 开发。它提供符合 PEP 249 描述的 DB-API 2.0 规范的 SQL 接口。

要使用此模块并建立与数据库的连接:-

1.导入sqlite3模块并创建代表数据库的对象。

import sqlite3
conn = sqlite3.connect('function.db')

2.要执行 SQL 命令,请构造一个游标对象并调用execute()方法。

c = conn.cursor()
c.execute('''CREATE TABLE student
             (Number REAL,stud_name TEXT)''')

注意:为了跟踪数据库级别的操作,我们需要下载 SQLite 浏览器数据库。

在 SQLite 表中存储Python函数的步骤:

  • 步骤 1)导入sqlite3并创建数据库对象
Python3
import sqlite3
conn = sqlite3.connect('function.db')


Python3
c = conn.cursor()
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')


Python3
code = """ def gfg(): print("GeeksforGeeks") """


Python3
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code,))
conn.commit()


Python3
# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
code = """ def gfg(): print("GeeksforGeeks")"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code))
  
# Terminating the transaction
conn.commit()


Python3
# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
code = """ def add(): print((10+20)/2)"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code,))
  
# Displaying Content of the table
c.execute("SELECT * FROM pyfuction;")
print(c.fetchall())
  
# Terminating the transaction
conn.commit()


Python3
# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
def1 = """ def maximum(): print(max(2,5))"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (def1,))
  
# Storing another python function in the Sqlite table
def2 = """ def gfg(): print("GeeksforGeeks")"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (def2,))
  
# Displaying Content of the table
c.execute("SELECT * FROM pyfuction;")
print(c.fetchall())
  
# Terminating the transaction
conn.commit()


这里我们导入了sqlite3模块,并初始化了数据库函数.db 。如果数据库不存在,则此指令将创建数据库,并且如果存在与定义的名称相同的数据库,则它将进一步移动。

  • 步骤 2)创建一个 Cursor 对象并调用它的 execute() 方法来创建表。

蟒蛇3

c = conn.cursor()
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')

初始化数据库后,我们必须使用conn.cursor()创建游标对象。游标允许我们执行 SQL 命令。

  • 步骤 3)用以下语法编写函数。

蟒蛇3

code = """ def gfg(): print("GeeksforGeeks") """

由于我们必须将函数定义存储在表中,因此我们必须按照上述语法编写函数。

  • 步骤 4)将函数插入pyfunction table

蟒蛇3

c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code,))
conn.commit()

SQL命令“INSERT INTO pyfuction (func_defination) VALUES (?)”, (code)以文本的形式将变量code的值插入表pyfunction内。然后使用commit()方法保存更改。

下面是一些将Python函数存储在 Sqlite 表中的示例?

示例 1:gfg()函数存储在名为pyfunction的 sqlite 表中。

蟒蛇3

# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
code = """ def gfg(): print("GeeksforGeeks")"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code))
  
# Terminating the transaction
conn.commit()

输出:

示例 2:这是在pyfunction表中存储名为add()的函数的另一个示例。

蟒蛇3

# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
code = """ def add(): print((10+20)/2)"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (code,))
  
# Displaying Content of the table
c.execute("SELECT * FROM pyfuction;")
print(c.fetchall())
  
# Terminating the transaction
conn.commit()

输出:

示例 3:pyfunction表中存储两个函数, maximum()gfg()

蟒蛇3

# Importing required library
import sqlite3
  
# Initializing the database
conn = sqlite3.connect('function.db')
  
# Creating cursor object
c = conn.cursor()
  
# Creating table
c.execute('''CREATE TABLE pyfuction
             (func_defination TEXT)''')
  
# Storing a python function in the Sqlite table
def1 = """ def maximum(): print(max(2,5))"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (def1,))
  
# Storing another python function in the Sqlite table
def2 = """ def gfg(): print("GeeksforGeeks")"""
c.execute("INSERT INTO pyfuction (func_defination) VALUES (?)",
          (def2,))
  
# Displaying Content of the table
c.execute("SELECT * FROM pyfuction;")
print(c.fetchall())
  
# Terminating the transaction
conn.commit()

输出: