Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 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()
비교하기