Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Movie watchlist database.py diff between SQLite and PostgreSQL
创建于
6年前
差异永不过期
清除
导出
分享
解释
21 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
81 行
全部复制
47 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
91 行
全部复制
复制
已复制
复制
已复制
import os
import datetime
import datetime
复制
已复制
复制
已复制
import
sqlite3
import
psycopg2
from dotenv import load_dotenv
load_dotenv()
CREATE_MOVIES_TABLE = """CREATE TABLE IF NOT EXISTS movies (
CREATE_MOVIES_TABLE = """CREATE TABLE IF NOT EXISTS movies (
复制
已复制
复制
已复制
id
INTEGER
PRIMARY KEY,
id
SERIAL
PRIMARY KEY,
name TEXT,
name TEXT,
release_timestamp REAL
release_timestamp REAL
);"""
);"""
CREATE_USERS_TABLE = """CREATE TABLE IF NOT EXISTS users (
CREATE_USERS_TABLE = """CREATE TABLE IF NOT EXISTS users (
username TEXT PRIMARY KEY
username TEXT PRIMARY KEY
);"""
);"""
CREATE_WATCHED_TABLE = """CREATE TABLE IF NOT EXISTS watched (
CREATE_WATCHED_TABLE = """CREATE TABLE IF NOT EXISTS watched (
user_username TEXT,
user_username TEXT,
movie_id INTEGER,
movie_id INTEGER,
FOREIGN KEY(user_username) REFERENCES users(username),
FOREIGN KEY(user_username) REFERENCES users(username),
FOREIGN KEY(movie_id) REFERENCES movies(id)
FOREIGN KEY(movie_id) REFERENCES movies(id)
);"""
);"""
复制
已复制
复制
已复制
INSERT_MOVIE = "INSERT INTO movies (name, release_timestamp) VALUES (
?, ?
)"
INSERT_MOVIE = "INSERT INTO movies (name, release_timestamp) VALUES (
%s, %s
)"
SELECT_ALL_MOVIES = "SELECT * FROM movies;"
SELECT_ALL_MOVIES = "SELECT * FROM movies;"
复制
已复制
复制
已复制
SELECT_UPCOMING_MOVIES = "SELECT * FROM movies WHERE release_timestamp >
?
;"
SELECT_UPCOMING_MOVIES = "SELECT * FROM movies WHERE release_timestamp >
%s
;"
INSERT_USER = "INSERT INTO users (username) VALUES (
?
)"
INSERT_USER = "INSERT INTO users (username) VALUES (
%s
)"
INSERT_WATCHED_MOVIE = "INSERT INTO watched (user_username, movie_id) VALUES (
?, ?
)"
INSERT_WATCHED_MOVIE = "INSERT INTO watched (user_username, movie_id) VALUES (
%s, %s
)"
SELECT_WATCHED_MOVIES = """SELECT movies.*
SELECT_WATCHED_MOVIES = """SELECT movies.*
FROM users
FROM users
JOIN watched ON users.username = watched.user_username
JOIN watched ON users.username = watched.user_username
JOIN movies ON watched.movie_id = movies.id
JOIN movies ON watched.movie_id = movies.id
复制
已复制
复制
已复制
WHERE users.username =
?
;"""
WHERE users.username =
%s
;"""
SEARCH_MOVIE = """SELECT * FROM movies WHERE name LIKE
?
;"""
SEARCH_MOVIE = """SELECT * FROM movies WHERE name LIKE
%s
;"""
复制
已复制
复制
已复制
connection =
sqlite3
.connect(
"data.db")
# Remember to not store the database URI in your code!
connection =
psycopg2
.connect(
os.environ.get("DATABASE_URI"))
def create_tables():
def create_tables():
with connection:
with connection:
复制
已复制
复制
已复制
connection.
execute(CREATE_MOVIES_TABLE)
with
connection.
cursor() as cursor:
connection
.execute(CREATE_USERS_TABLE)
cursor.
execute(CREATE_MOVIES_TABLE)
connection
.execute(CREATE_WATCHED_TABLE)
cursor
.execute(CREATE_USERS_TABLE)
cursor
.execute(CREATE_WATCHED_TABLE)
def add_movie(name, release_timestamp):
def add_movie(name, release_timestamp):
with connection:
with connection:
复制
已复制
复制
已复制
connection.
execute(INSERT_MOVIE, (name, release_timestamp))
with
connection.
cursor() as cursor:
cursor.
execute(INSERT_MOVIE, (name, release_timestamp))
def get_movies(upcoming=False):
def get_movies(upcoming=False):
with connection:
with connection:
复制
已复制
复制
已复制
cursor =
connection.cursor()
with
connection.cursor()
as cursor:
if upcoming:
if upcoming:
today_timestamp = datetime.datetime.today().timestamp()
today_timestamp = datetime.datetime.today().timestamp()
cursor.execute(SELECT_UPCOMING_MOVIES, (today_timestamp,))
cursor.execute(SELECT_UPCOMING_MOVIES, (today_timestamp,))
else:
else:
cursor.execute(SELECT_ALL_MOVIES)
cursor.execute(SELECT_ALL_MOVIES)
return cursor.fetchall()
return cursor.fetchall()
def add_user(username):
def add_user(username):
with connection:
with connection:
复制
已复制
复制
已复制
connection.
execute(INSERT_USER, (username,))
with
connection.
cursor() as cursor:
cursor.
execute(INSERT_USER, (username,))
def watch_movie(username, movie_id):
def watch_movie(username, movie_id):
with connection:
with connection:
复制
已复制
复制
已复制
connection.
execute(INSERT_WATCHED_MOVIE, (username, movie_id))
with
connection.
cursor() as cursor:
cursor.
execute(INSERT_WATCHED_MOVIE, (username, movie_id))
def get_watched_movies(username):
def get_watched_movies(username):
with connection:
with connection:
复制
已复制
复制
已复制
cursor =
connection.cursor()
with
connection.cursor()
as cursor:
cursor.execute(SELECT_WATCHED_MOVIES, (username,))
cursor.execute(SELECT_WATCHED_MOVIES, (username,))
return cursor.fetchall()
return cursor.fetchall()
def search_movies(search_term):
def search_movies(search_term):
with connection:
with connection:
复制
已复制
复制
已复制
cursor =
connection.cursor()
with
connection.cursor()
as cursor:
cursor.execute(SEARCH_MOVIE, (f"%{search_term}%",))
cursor.execute(SEARCH_MOVIE, (f"%{search_term}%",))
return cursor.fetchall()
return cursor.fetchall()
已保存差异
原始文本
打开文件
import datetime import sqlite3 CREATE_MOVIES_TABLE = """CREATE TABLE IF NOT EXISTS movies ( id INTEGER PRIMARY KEY, name TEXT, release_timestamp REAL );""" CREATE_USERS_TABLE = """CREATE TABLE IF NOT EXISTS users ( username TEXT PRIMARY KEY );""" CREATE_WATCHED_TABLE = """CREATE TABLE IF NOT EXISTS watched ( user_username TEXT, movie_id INTEGER, FOREIGN KEY(user_username) REFERENCES users(username), FOREIGN KEY(movie_id) REFERENCES movies(id) );""" INSERT_MOVIE = "INSERT INTO movies (name, release_timestamp) VALUES (?, ?)" SELECT_ALL_MOVIES = "SELECT * FROM movies;" SELECT_UPCOMING_MOVIES = "SELECT * FROM movies WHERE release_timestamp > ?;" INSERT_USER = "INSERT INTO users (username) VALUES (?)" INSERT_WATCHED_MOVIE = "INSERT INTO watched (user_username, movie_id) VALUES (?, ?)" SELECT_WATCHED_MOVIES = """SELECT movies.* FROM users JOIN watched ON users.username = watched.user_username JOIN movies ON watched.movie_id = movies.id WHERE users.username = ?;""" SEARCH_MOVIE = """SELECT * FROM movies WHERE name LIKE ?;""" connection = sqlite3.connect("data.db") def create_tables(): with connection: connection.execute(CREATE_MOVIES_TABLE) connection.execute(CREATE_USERS_TABLE) connection.execute(CREATE_WATCHED_TABLE) def add_movie(name, release_timestamp): with connection: connection.execute(INSERT_MOVIE, (name, release_timestamp)) def get_movies(upcoming=False): with connection: cursor = connection.cursor() if upcoming: today_timestamp = datetime.datetime.today().timestamp() cursor.execute(SELECT_UPCOMING_MOVIES, (today_timestamp,)) else: cursor.execute(SELECT_ALL_MOVIES) return cursor.fetchall() def add_user(username): with connection: connection.execute(INSERT_USER, (username,)) def watch_movie(username, movie_id): with connection: connection.execute(INSERT_WATCHED_MOVIE, (username, movie_id)) def get_watched_movies(username): with connection: cursor = connection.cursor() cursor.execute(SELECT_WATCHED_MOVIES, (username,)) return cursor.fetchall() def search_movies(search_term): with connection: cursor = connection.cursor() cursor.execute(SEARCH_MOVIE, (f"%{search_term}%",)) return cursor.fetchall()
更改后文本
打开文件
import os import datetime import psycopg2 from dotenv import load_dotenv load_dotenv() CREATE_MOVIES_TABLE = """CREATE TABLE IF NOT EXISTS movies ( id SERIAL PRIMARY KEY, name TEXT, release_timestamp REAL );""" CREATE_USERS_TABLE = """CREATE TABLE IF NOT EXISTS users ( username TEXT PRIMARY KEY );""" CREATE_WATCHED_TABLE = """CREATE TABLE IF NOT EXISTS watched ( user_username TEXT, movie_id INTEGER, FOREIGN KEY(user_username) REFERENCES users(username), FOREIGN KEY(movie_id) REFERENCES movies(id) );""" INSERT_MOVIE = "INSERT INTO movies (name, release_timestamp) VALUES (%s, %s)" SELECT_ALL_MOVIES = "SELECT * FROM movies;" SELECT_UPCOMING_MOVIES = "SELECT * FROM movies WHERE release_timestamp > %s;" INSERT_USER = "INSERT INTO users (username) VALUES (%s)" INSERT_WATCHED_MOVIE = "INSERT INTO watched (user_username, movie_id) VALUES (%s, %s)" SELECT_WATCHED_MOVIES = """SELECT movies.* FROM users JOIN watched ON users.username = watched.user_username JOIN movies ON watched.movie_id = movies.id WHERE users.username = %s;""" SEARCH_MOVIE = """SELECT * FROM movies WHERE name LIKE %s;""" # Remember to not store the database URI in your code! connection = psycopg2.connect(os.environ.get("DATABASE_URI")) def create_tables(): with connection: with connection.cursor() as cursor: cursor.execute(CREATE_MOVIES_TABLE) cursor.execute(CREATE_USERS_TABLE) cursor.execute(CREATE_WATCHED_TABLE) def add_movie(name, release_timestamp): with connection: with connection.cursor() as cursor: cursor.execute(INSERT_MOVIE, (name, release_timestamp)) def get_movies(upcoming=False): with connection: with connection.cursor() as cursor: if upcoming: today_timestamp = datetime.datetime.today().timestamp() cursor.execute(SELECT_UPCOMING_MOVIES, (today_timestamp,)) else: cursor.execute(SELECT_ALL_MOVIES) return cursor.fetchall() def add_user(username): with connection: with connection.cursor() as cursor: cursor.execute(INSERT_USER, (username,)) def watch_movie(username, movie_id): with connection: with connection.cursor() as cursor: cursor.execute(INSERT_WATCHED_MOVIE, (username, movie_id)) def get_watched_movies(username): with connection: with connection.cursor() as cursor: cursor.execute(SELECT_WATCHED_MOVIES, (username,)) return cursor.fetchall() def search_movies(search_term): with connection: with connection.cursor() as cursor: cursor.execute(SEARCH_MOVIE, (f"%{search_term}%",)) return cursor.fetchall()
查找差异