로그인

  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

정보&강의 python로 파싱하고 XE로 게시물 자동 등록하기


파이썬으로 게시물을 파싱하여 XE나 라이믹스의 새로운 게시물로 등록하고자 할 때,

rx_sequence 혹은 xe_sequence의 마지막 값을 가져와서 게시물당 1씩 증가하도록 하여야 한다.

 

이 값이 document_srl으로 사용되며, 또 list_order와 update_order의 정렬값으로 사용된다.

 

인터넷에 떠도는 자료는 document_srl 값 처리가 제대로 처리되지 않아 오류 없이 파이썬으로 게시물을 등록할 수 있는 코드를 작성하였다.

 

파이썬 3.6 기준이며 pymysql 사용함.

 

 

#!/usr/bin/python 
# -*- coding: utf-8 -*- 
import pymysql
from time import localtime, strftime 


# MySQL 설정
db_addr = 'localhost'
db_user = 'test'
db_password = 'password'
db_name = 'test'


# MySQL Connection 연결
conn = pymysql.connect(host=db_addr, user=db_user, password=db_password, db=db_name, charset='utf8')

# Connection 으로부터 Cursor 생성
curs = conn.cursor()


# SQL문 실행 - rx_sequence 현재값
def get_last_rx_sequence():
    rx_sequence_sql = "SELECT `seq` FROM `rx_sequence` ORDER BY `seq` DESC limit 1"
    curs.execute(rx_sequence_sql)
    # 데이타 Fetch
    rx_sequence_sql_rows = curs.fetchall()
    rx_sequence = rx_sequence_sql_rows[0][0] 
    return rx_sequence

# 현재 rx_sequence_sql의 값
print(get_last_rx_sequence())



# rx_sequence_sql_rows의 값을 증가시킴
# 증가된 rx_sequence = 새로 생길 document_srl가 될 것임
# rx_sequence_sql_rows 현재값에 1을 추가
new_rx_sequence_rows = int(get_last_rx_sequence() + 1)
print(new_rx_sequence_rows)


# SQL문 실행 - DB rx_sequence 현재값에 1을 추가
rx_sequence_inser_sql = """INSERT INTO `rx_sequence` (seq) 
            VALUES (%s);"""
curs.execute(rx_sequence_inser_sql, (new_rx_sequence_rows))
conn.commit()


# 게시물 입력정보
document_srl = get_last_rx_sequence()
module_srl = "68"
member_srl = "4"
user_name = "admin"
nick_name = "운영자"
cTime = strftime("%Y%m%d%H%M%S", localtime()) 
title = "제목"
content = "내용" 
tags = "tt,tdf,tdfd,wrf,dfsf"
rx_document_inser_sql = """INSERT INTO `rx_documents` 
            (`document_srl`, `module_srl`,  `title`, `content`, `member_srl`, `regdate`, `last_update`,
            `category_srl`, `lang_code`, `is_notice`, `title_bold`, `title_color`, 
            `readed_count`, `voted_count`, `blamed_count`, `comment_count`, `trackback_count`, `uploaded_count`, 
            `password`, `user_id`, `user_name`, `nick_name`, `email_address`, `homepage`, 
            `tags`, `extra_vars`, `last_updater`, `ipaddress`, `list_order`, `update_order`, 
            `allow_trackback`, `notify_message`, `status`, `comment_status`) 
            VALUES (%s, %s, %s, %s, %s, %s, %s,
            '0', 'ko', 'N',  'N', 'N', 
            '0', '0', '0', '0', '0', '0', 
            NULL, NULL, %s, %s, '', '', 
            %s, NULL, NULL, '', %s, %s,
            'N', 'N', 'PUBLIC', 'ALLOW');"""
curs.execute(rx_document_inser_sql, (document_srl, module_srl, title, content, member_srl, cTime, cTime, user_name, nick_name, tags, -document_srl, -document_srl))
conn.commit()


# `list_order` 와 `update_order`는 document_srl의 역순으로 입력하면 됨.

 

 

해당 소스는 첨부파일에 대한 처리는 들어가있지 않다.


이런 글도 찾아보세요!

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0

권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?