def find_review_by_user_id(cls, user_id): Session = openSession() session = Session() print("FIND BY USER ID METHOD 진입!") print("성공") return session.query(ReviewDto).filter( ReviewDto.user_id.like(user_id)).all()
def update(user): """ 유저 정보를 수정해 준다 새로운 유저 정보를 가진 유저를 가져와 기존의 유저 정보를 수정해 준다. Parameter: 새로운 유저 정보를 가진 유저 """ Session = openSession() session = Session() print(f"{user.lname}") print(f"{user.fname}") session.query(UserDto).filter(UserDto.user_id == user.user_id).update({ UserDto.lname: user.lname, UserDto.fname: user.fname, UserDto.age: user.age, UserDto.password: user.password, UserDto.age: user.age, UserDto.email: user.email }) session.commit() session.close()
def find_by_id(cls, id): Session = openSession() session = Session() print("FIND BY ID method 진입!") print(f'ID : {id}') return session.query(ReviewDto).filter(ReviewDto.rev_id.like(id)).one()
def update(review, id): Session = openSession() session = Session() print('진입') print(f'Rev id : {review.rev_id} / Movie_id :{review.movie_id}/\ User_id: {review.user_id}/ Title: {review.title}/ Content: {review.content} / Label: {review.label}' ) print('update 1 clear') print(f'************ID : {id} **************** ') print('update 2 clear') session.query(ReviewDto).filter( ReviewDto.rev_id == review.rev_id).update({ ReviewDto.user_id: review.user_id, ReviewDto.movie_id: review.movie_id, ReviewDto.title: review.title, ReviewDto.content: review.content, ReviewDto.label: review.label }) print('update 3 clear') session.commit() session.close() print('update 4 clear')
def find_all(cls): Session = openSession() session = Session() newtables = session.query(ReviewDto, MovieDto.title_kor, UserDto.fname).filter(UserDto.usr_id.like(ReviewDto.usr_id))\ .filter(ReviewDto.mov_id.like(MovieDto.mov_id)) df = pd.read_sql(newtables.statement, newtables.session.bind) print(df) return json.loads(df.to_json(orient='records'))
def insert_many(): service = UserService() Session = openSession() session = Session() df = service.hook() print(df.head()) session.bulk_insert_mappings(UserDto, df.to_dict(orient="records")) session.commit() session.close()
def find_by_movie_title(cls, movie_title): print("FIND BY MOVIE TITLE 진입 !") Session = openSession() session = Session() mov_id = MovieDao.find_by_title_return_id(movie_title) newtables = session.query(cls, MovieDto.title_kor, UserDto.fname).filter(MovieDto.mov_id.like(mov_id))\ .filter(cls.mov_id.like(mov_id)).filter(cls.usr_id.like(UserDto.usr_id)) df = pd.read_sql(newtables.statement, newtables.session.bind) print(df) return json.loads(df.to_json(orient='records'))
def add(actor_name): crawl = Crawling(actor_name) df = crawl.crawl() actor = df.to_dict(orient="records") actor = actor[0] actor = ActorDto(**actor) Session = openSession() session = Session() print("---------------------------------------------") db.session.add(actor) db.session.commit() session.close()
def save(review): Session = openSession() session = Session() print('진입') print(f'Rev id : {review.rev_id} / Movie_id :{review.movie_id}/\ User_id: {review.user_id}/ Title: {review.title}/ Content: {review.content} / Label: {review.label}' ) print('1 clear') session.add(review) print('2 clear') session.commit() session.close() print('3 clear')
def find_review_by_user_id(cls, user_id): Session = openSession() session = Session() print("FIND BY USER ID METHOD 진입!") print("성공") # 기존 Reviews table에 movies.title_kor / UserDto.fname을 조인해서 SQLAlchemy 자체로 가져옴 newtables = session.query(ReviewDto, MovieDto.title_kor, UserDto.fname).filter(ReviewDto.usr_id.like(user_id))\ .filter(ReviewDto.usr_id.like(UserDto.usr_id)).filter(ReviewDto.mov_id.like(MovieDto.mov_id)) # 해당 Query를 DataFrame으로 전환 df = pd.read_sql(newtables.statement, newtables.session.bind) print(df) return json.loads(df.to_json(orient='records'))
def group_by(cls): Session = openSession() session = Session() titledict = {} titles = session.query(cls.title, cls.label).all() # 타이틀 뽑아 왔음 for title in titles: if title[0] not in titledict: titledict[title[0]] = 1 else: titledict[title[0]] += 1 if title[1] == 1: titledict[title[0]] += 1 titledict = {k: v for k, v in sorted(titledict.items(), key=lambda item: item[1])} return titledict
def group_by_for_top(cls): Session = openSession() session = Session() print("그룹 바이 for top 진입!!!") titles = session.query(cls, MovieDto.title_kor).filter( cls.mov_id.like(MovieDto.mov_id)).all() titledict = {} # 타이틀 뽑아 왔음 for title in titles: if title[-1] not in titledict: titledict[title[-1]] = 1 else: titledict[title[-1]] += 1 if title[-2] == 1: titledict[title[-1]] += 1 session.close() titledict = { k: v for k, v in sorted(titledict.items(), key=lambda item: item[1]) } print(f'Sorting 이후 : {titledict}') # max_key = max(titledict, key=titledict. get) # print(f'Max key : {max_key}') return titledict
class UserVo: """ User model 에 쓸 parameter 들을 생성 시킨다. """ user_id: str = '' password: str = '' lname: str = '' fname: str = '' gender: str = '' age: int = 0 email: str = '' Session = openSession() session = Session() user_preprocess = UserPreprocess() class UserDao(UserDto): """ User 모델을 접근 하는 객체 예: CRUD: (Create, Read, Update, Delete) """ @staticmethod def bulk(): """ 모든 유저 리스트를 DataBase 안에 넣어준다 """ df = user_preprocess.hook()
def count(cls): Session = openSession() session = Session() return session.query(func.count(ReviewDto.rev_id)).one()
def find_by_movie_title(cls, title): Session = openSession() session = Session() print("FIND BY TITLE 진입 !") return session.query(ReviewDto).filter(ReviewDto.title.like(title)).all()