2024-09-01



# 导入Django模块
from django.shortcuts import render
from django.http import HttpResponse
 
# 定义一个简单的视图函数,返回一个包含当前日期和时间的HTTP响应
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)
 
# 定义一个视图,返回一个包含所有书籍信息的HTML表格
def books(request):
    books_list = Book.objects.all()  # 假设已经有了一个Book模型
    return render(request, 'books_template.html', {'books': books_list})
 
# 定义一个视图,处理对书籍的创建请求
def new_book(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponse('Book added successfully.')
    else:
        form = BookForm()
 
    return render(request, 'new_book_template.html', {'form': form})

在这个示例中,我们定义了三个视图函数,分别用于展示当前时间、书籍列表和创建新书籍。这些函数展示了如何使用Django的HttpResponserender方法来返回不同类型的响应,并且如何使用Django的表单处理用户输入。注意,这些代码示例假设你已经定义了相应的模板文件(如books_template.htmlnew_book_template.html),以及书籍模型Book和书籍表单BookForm

2024-09-01



# 导入Django模块
import django
from django.core.management import call_command
 
# 初始化Django项目
def initialize_django(settings_module):
    django.setup()
    call_command('migrate', 'blog', '0001_initial', '--no-input')
 
# 创建博客文章
def create_blog_entry(title, content, author):
    from blog.models import Post
    Post.objects.create(title=title, content=content, author=author)
 
# 示例:使用函数
if __name__ == '__main__':
    # 初始化Django项目
    initialize_django('myproject.settings')
 
    # 创建一个新用户
    from django.contrib.auth.models import User
    user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
 
    # 创建博客文章
    create_blog_entry('Hello World', 'This is my first post.', user)

这个代码示例展示了如何在Python脚本中初始化Django项目,创建一个新用户,并为这个用户创建一个新的博客文章。这个过程是在没有使用Django shell的情况下完成的,适用于需要在部署脚本中自动执行这些操作的场景。

2024-08-30



import sqlite3
 
# 连接到数据库,如果不存在则在当前目录创建数据库文件
conn = sqlite3.connect('test.db')
 
# 创建一个游标对象
cursor = conn.cursor()
 
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS user (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    name TEXT NOT NULL,
                    age INTEGER NOT NULL
                  )''')
 
# 插入数据
cursor.execute('''INSERT INTO user (name, age) VALUES ('Alice', 25)''')
 
# 查询数据
cursor.execute('''SELECT * FROM user''')
rows = cursor.fetchall()
for row in rows:
    print(row)
 
# 更新数据
cursor.execute('''UPDATE user SET age = ? WHERE name = ?''', (30, 'Alice'))
 
# 删除数据
cursor.execute('''DELETE FROM user WHERE name = ?''', ('Alice',))
 
# 提交事务
conn.commit()
 
# 关闭游标和连接
cursor.close()
conn.close()

这段代码展示了如何使用Python的sqlite3库进行基本的数据库操作,包括创建表、插入数据、查询数据、更新数据和删除数据。在实际应用中,你需要根据自己的需求来调整SQL语句。

2024-08-30



from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
 
# 定义数据库引擎
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()
 
# 定义模型
class User(Base):
    __tablename__ = 'users'
 
    id = Column(Integer, primary_key=True)
    name = Column(String)
 
    def __repr__(self):
        return f"User(id={self.id}, name={self.name})"
 
# 创建表格
Base.metadata.create_all(engine)
 
# 添加记录
new_user = User(name='Alice')
session.add(new_user)
session.commit()
 
# 查询记录
users = session.query(User).all()
for user in users:
    print(user)
 
# 关闭会话
session.close()

这段代码演示了如何使用SQLAlchemy创建一个SQLite数据库,定义一个模型,创建表格,添加记录,查询记录,并在最后关闭会话。这是学习如何操作数据库的基本例子,适合初学者学习和实践。

2024-08-30



import cx_Oracle
 
# 连接Oracle数据库
def connect_oracle(username, password, host, port, service_name):
    dsn = cx_Oracle.makedsn(host, port, service_name)
    connection = cx_Oracle.connect(username, password, dsn)
    return connection
 
# 查询Oracle数据库
def query_oracle(connection, query):
    cursor = connection.cursor()
    cursor.execute(query)
    result = cursor.fetchall()
    cursor.close()
    return result
 
# 在Oracle数据库中插入数据
def insert_oracle(connection, table_name, data):
    cursor = connection.cursor()
    columns = ', '.join(data.keys())
    values = ', '.join(':' + column for column in data.keys())
    sql = f"INSERT INTO {table_name} ({columns}) VALUES ({values})"
    cursor.execute(sql, data)
    connection.commit()
    cursor.close()
 
# 在Oracle数据库中更新数据
def update_oracle(connection, table_name, data, condition):
    cursor = connection.cursor()
    updates = ', '.join(f"{key} = :{key}" for key in data.keys())
    sql = f"UPDATE {table_name} SET {updates} WHERE {condition}"
    cursor.execute(sql, data)
    connection.commit()
    cursor.close()
 
# 在Oracle数据库中删除数据
def delete_oracle(connection, table_name, condition):
    cursor = connection.cursor()
    sql = f"DELETE FROM {table_name} WHERE {condition}"
    cursor.execute(sql)
    connection.commit()
    cursor.close()
 
# 示例用法
if __name__ == "__main__":
    # 替换以下信息为你的数据库连接信息
    username = "your_username"
    password = "your_password"
    host = "your_host"
    port = "your_port"
    service_name = "your_service_name"
 
    # 连接数据库
    connection = connect_oracle(username, password, host, port, service_name)
 
    # 查询示例
    query = "SELECT * FROM your_table"
    result = query_oracle(connection, query)
    print(result)
 
    # 插入示例
    data = {'column1': 'value1', 'column2': 'value2'}
    insert_oracle(connection, 'your_table', data)
 
    # 更新示例
    update_data = {'column1': 'new_value1'}
    update_condition = "column2 = 'value2'"
    update_oracle(connection, 'your_table', update_data, update_condition)
 
    # 删除示例
    delete_condition = "column1 = 'new_value1'"
    delete_oracle(connection, 'your_table', delete_condition)
 
    # 关闭数据库连接
    connection.close()

在这个代码示例中,我们首先定义了连接Oracle数据库的函数connect_oracle,然后是查询数据库的query_oracle函数。接着,我们实现了insert_oracle用于插入数据,\`upd

2024-08-30



from zipfile import ZipFile
 
def extract_zip_files(zip_file_path, extract_to):
    """
    从ZIP文件中提取内容到指定目录。
    如果目标目录不存在,则创建它。
    :param zip_file_path: ZIP文件的路径。
    :param extract_to: 提取内容的目标目录。
    """
    with ZipFile(zip_file_path, 'r') as zip_ref:
        zip_ref.extractall(extract_to)
 
# 使用示例
zip_file_path = 'example.zip'
extract_to = 'extracted'
extract_zip_files(zip_file_path, extract_to)

这段代码定义了一个函数extract_zip_files,它接受ZIP文件的路径和提取目标目录作为参数。使用ZipFile类的上下文管理器来安全地打开ZIP文件,并将其内容提取到指定目录。如果目标目录不存在,会自动创建。使用这个函数可以轻松地从ZIP文件中提取内容。

2024-08-30

在Python中,SQLite是一个广泛使用的开源嵌入式数据库,提供了数据库的基本功能,如表的创建、数据的插入、查询等。Pandas DataFrame是Python中用于数据分析和操作的强大工具,它可以与SQLite数据库进行互操作。

以下是如何使用SQLite和Pandas DataFrame的简单示例:

  1. 使用SQLite创建和管理数据库:



import sqlite3
 
# 连接到SQLite内存中的数据库
conn = sqlite3.connect(':memory:')
 
# 创建一个表
conn.execute('CREATE TABLE example (id INTEGER PRIMARY KEY, name TEXT)')
 
# 插入数据
conn.execute('INSERT INTO example (name) VALUES (?)', ('Alice',))
 
# 查询数据
cursor = conn.execute('SELECT * FROM example')
for row in cursor:
    print(row)
 
# 关闭连接
conn.close()
  1. 使用Pandas DataFrame与SQLite数据库互操作:



import pandas as pd
import sqlite3
 
# 创建一个DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob'], 'age': [25, 30]})
 
# 将DataFrame写入SQLite数据库
conn = sqlite3.connect('example.db')
df.to_sql('people', conn, if_exists='replace', index=False)
 
# 从SQLite数据库读取数据到DataFrame
query = "SELECT * FROM people"
df_from_db = pd.read_sql_query(query, conn)
 
# 关闭连接
conn.close()

这两个示例展示了如何使用SQLite和Pandas DataFrame进行基本的数据库操作。在实际应用中,你可能需要根据具体需求使用更复杂的SQL语句或DataFrame的高级功能。

2024-08-30

在Python中,可以使用各种库来连接和操作不同类型的数据库,如MSSQL, MySQL, SQLite, Redis, ElasticSearch, MongoDB, PostgreSQL 和 Oracle。以下是一些示例代码:

  1. 连接MSSQL:



import pymssql
 
conn = pymssql.connect(server='your_server', user='your_username', password='your_password', database='your_database')
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
 
conn.close()
  1. 连接MySQL:



import mysql.connector
 
conn = mysql.connector.connect(host='your_host', user='your_username', password='your_password', database='your_database')
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
 
conn.close()
  1. 连接SQLite:



import sqlite3
 
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
 
conn.close()
  1. 连接Redis:



import redis
 
r = redis.Redis(host='your_host', port=your_port, db=your_db)
value = r.get('your_key')
print(value)
  1. 连接ElasticSearch:



from elasticsearch import Elasticsearch
 
es = Elasticsearch(hosts=['your_host'])
response = es.search(index='your_index', body={'query': {'match_all': {}}})
print(response)
  1. 连接MongoDB:



from pymongo import MongoClient
 
client = MongoClient('mongodb://your_username:your_password@your_host:your_port/your_database')
db = client['your_database']
collection = db['your_collection']
document = collection.find_one()
print(document)
  1. 连接PostgreSQL:



import psycopg2
 
conn = psycopg2.connect(dbname='your_dbname', user='your_user', password='your_pw', host='your_host', port='your_port')
cursor = conn.cursor()
cursor.execute("SELECT * FROM your_table")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
 
conn.close()
  1. 连接Oracle:



import cx_Oracle
 
conn = 
2024-08-29



import sqlite3
import mysql.connector
from mysql.connector import Error
 
# SQLite数据库操作
def sqlite_example():
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()
 
    cursor.execute('''CREATE TABLE IF NOT EXISTS stocks
                      (date text, trans text, symbol text, qty real, price real)''')
    cursor.execute("INSERT INTO stocks VALUES ('2020-01-05', 'BUY', 'RHAT', 100, 35.14)")
 
    cursor.close()
    conn.commit()
    conn.close()
 
# MySQL数据库操作
def mysql_example():
    try:
        conn = mysql.connector.connect(host='localhost',
                                       database='employees',
                                       user='username',
                                       password='password')
        if conn.is_connected():
            cursor = conn.cursor()
            cursor.execute("SELECT first_name, last_name FROM employees WHERE employee_id = %s", (100,))
            print(cursor.fetchall())
            cursor.close()
    except Error as e:
        print(e)
    finally:
        if conn is not None and conn.is_connected():
            conn.close()
 
# 调用函数
sqlite_example()
mysql_example()

这段代码展示了如何使用Python进行SQLite和MySQL数据库的基本操作,包括创建表格、插入数据以及执行查询。代码中使用了sqlite3mysql.connector模块,并对数据库连接进行了异常处理。

2024-08-29

要使用Python3的SQLAlchemy结合SQLCipher3对SQLite3数据库进行加密,你需要确保已经安装了pysqlcipher3。以下是安装pysqlcipher3和使用SQLAlchemy进行加密操作的步骤:

  1. 安装pysqlcipher3:



pip install pysqlcipher3
  1. 使用SQLAlchemy加密操作示例代码:



from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
 
# 使用pysqlcipher3提供的数据库加密引擎
engine = create_engine('sqlite:///example.db?cipher=secret-key')
Session = sessionmaker(bind=engine)
 
# 创建一个会话
session = Session()
 
# 定义模型
class User(object):
    def __init__(self, name, email):
        self.name = name
        self.email = email
 
# 创建表
Base.metadata.create_all(engine)
 
# 添加记录
new_user = User('Alice', 'alice@example.com')
session.add(new_user)
 
# 提交事务
session.commit()
 
# 查询记录
users = session.query(User).all()
for user in users:
    print(user.name, user.email)
 
# 关闭会话
session.close()

在上述代码中,请将example.db替换为你的数据库文件名,secret-key替换为你的加密密钥。

请注意,SQLCipher3和pysqlcipher3需要你的系统具备相应的SQLCipher库。如果你在Windows上编译pysqlcipher3,可能需要下载预编译的SQLCipher二进制文件或者自行编译SQLCipher。如果你在Linux或者Mac上,通常可以通过包管理器安装SQLCipher。