반응형

지난번에 이어 오늘은 html form 을 이용해서 네이버 블로그 api 포스팅에 대해 작성해볼께요

 

먼저 html 을 작성해 볼께요~~

<!DOCTYPE html>
<html>
<head>
<title>글쓰기</title>
</head>
<body>
<form action="/action_blog" method="post">
  <label for="blogid">아이디:</label><br>
  <input type="text" id="blogid" name="blogid" value=""><br>

  <label for="apikey">API연결 암호:</label><br>
  <input type="text" id="apikey" name="apikey" value=""><br>

  <label for="category">카테고리:</label><br>
  <input type="text" id="category" name="category" value=""><br>

  <label for="title">제목:</label><br>
  <input type="text" id="title" name="title" value=""><br>

  <label for="contents">내용:</label><br>
  <textarea type="text" id="contents" name="contents"></textarea><br>

  <label for="tags">태그:</label><br>
  <input type="text" id="tags" name="tags" value=""><br>

  <input type="submit" value="글쓰기">


</form>
</body>
</html>

 

필요한 정보는 블로그 아이디, api key, 카테고리, 제목, 내용 그리고 태그까지 ~~~

네이버 블로그 포스팅에 필요한 정보를 html form 에 입력할 수 있도록 간단하게 코딩했어요

이쁘게 css 까지 하는건 개인 능력껏 진행해보시면 좋을거 같구요~~ 

 

네이버 블로그 API 확인 하는 방법은 

네이버 블로그 관리 > 메뉴·글·동영상 관리 > 글쓰기 API 설정

위에 이미지처럼 페이지에에서 아이디, 네이버 API 연결 암호 ,  API연결 정보를 확인 할 수 있어요

 

 

https://lim2j.tistory.com/120?category=916641

 

python 네이버 블로그 글쓰기 xmlrpc.client

네이버 블로그 api를 이용해 python 블로그 글쓰기 개발을 해보려고 해요~~ 언어공부에서 가장 빠른 방법은 프로젝트 구성해서 실천하기~ 구글을 열심히 뒤져보니 import xmlrpc.client API_URL = 'https://api.bl..

lim2j.tistory.com

네이버 등록 python class는 지난번에 포스팅한 글을 참고 하시면좋을거 같아요~~

 

오늘은 html form 정보를 전달하는 부분만 설명할거에요~

@app.route('/action_blog', methods=['POST'])
def action():  
    naver_id = request.form['blogid']
    api_key = request.form['apikey']
    category = request.form['category']

    tt = request.form['title']
    cnt = request.form['contents']
    tags = request.form['tags']
    
    nblog = nblogMgr(naver_id, api_key)
    re = nblog.post(tt, cnt, tags, category)

    return render_template('result.html', blogid=naver_id,result=re)

python  코드는 생각보다 간단해요~~

 

html form에서 action 부분과 method 와 같이 
<form action="/action_blog" method="post">

 

python

@app.route('/action_blog', methods=['POST'])

코드를 맞쳐주시고요~~

 

form name에 value를 받아와서 임의변수로 지정하고~~

naver_id = request.form['blogid']
api_key = request.form['apikey']
category = request.form['category']
tt = request.form['title']
cnt = request.form['contents']
tags = request.form['tags']

 

기존에 만들어두었던 class에 전달

nblog = nblogMgr(naver_id, api_key) 
re = nblog.post(tt, cnt, tags, category)

 

결과값을 받아 결과 페이지에 표현 하면되요~~

return render_template('result.html', blogid=naver_id,result=re)

결과 페이지는 아이디하고 돌려받은 결과값 2개의 값으로 포스팅된 페이지 링크를 만들 수 있어요~~

 

 

결과 화면은 각자 한번 만들어 보는것으로 이번 포스팅은 마무리 할께요~~

 

네이버 블로그 API  XMLRPC.CLIENT 경우 정보가 별로 없어 이미지 업로드하는 방법 찾는게 힘들었어요~~

생각보다 쉽지 않더군요~~

 

open api 경우 자세히 설명이 되어 있는데....  조금 아쉬웠어요~

 

오늘은 여기까지 다음에 또 만나요~~

 

 

이글이 맘에 드셨다면 공감~~ 버튼을~ 궁금한 내용은 댓글을 이용해주세요 ^^

 

 

반응형
블로그 이미지

2j-story

다양한 지식 공유 알림이 입니다

,
반응형

개발 공부할 때 가장 좋은 방법은 뭘까요??

저는 tutorial 을 찾아보고 그대로 따라 해보고 있어요

 

책도 많고 여러가지 블로그에 올라온 글도 많지만 가장 좋은 방법은 처음에 작성된 tutorial을 찾아보는 거라 생각돼요~~

 

장고에 대해 알아보지요~~

장고는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, 모델-뷰-컨트롤러 패턴을 따르고 있다. 현재는 장고 소프트웨어 재단에 의해 관리되고 있다. 고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이 장고의 주된 목표이다. 위키백과

 

https://www.djangoproject.com/

 

저도 영어를 잘하는 게 아니다 보니...

 

https://docs.djangoproject.com/ko/3.0/intro/

 

시작하기 | Django 문서 | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

이렇게 한글화 된 문서를 확인할 수 있어요~~ ^^

 

자 여기서부터는 하나씩 따라 해 보면 될 거 같아요~~

 

환경설정이 어려운 분들이 많을 거 같아요~~

저도 처음에 컴퓨터에 환경 설정해서 했는데..

이게 생각보다 쉽지 않아요~~

 

저는 구름 ide를 활용해보고 있어요~~

초기 설정이나 세팅이 편하다는 장점과 언제 어디서든 개발이 가능하다는 장점이 가장 큰 거 같아요~~

추가로 궁금한 부분은 제 포스팅에서 확인해 보아요 ^^

https://lim2j.tistory.com/109

 

인터넷 연결만 되어 있다면 개발이 가능한 온라인 IDE goormide

나는 개발자 인가?? 개발에 관심이 많아 시작한 html css javascript 소스 보고 분석하고 하다 보니 asp, java, nodejs 개발에 참여를 해보았고 물론 저는 front-end에 더 잘 맞는 거 같다는 생각을 하고 있어요..

lim2j.tistory.com

 

 

코드를 완성하고 확인해보려면 프로젝트 속성에서 url을 확인할 수 있어요

위에 상단 메뉴 프로젝트 > 실행 URL과 포트 

창이 하나 열리면서 확인이 가능해요~~

 

여기서 추가로 하나 더 해야 할 일이 있어요~~ 어떤 것을 만들 것인가??

무작정 튜토리얼만 따라 하다 보면 지식이란 것을 얻을 수 있지만 추가로 응용이란 걸 하나 더 얻고 가면 좋을 거 같아요~~

내가 만들고자 하는 부분을 생각하고 

 

듀토리얼에서 필요한 부분과 추가로 필요한 부분을 검색해가면서 만들어나가면

 

조금 더 빠르게 성장할 수 있을 거 같아요

 

전 다시 개발해 보러 가볼게요~~~

 

 

 

반응형
블로그 이미지

2j-story

다양한 지식 공유 알림이 입니다

,
반응형

요즘 python에 재미를 붙이고 있어요~~

 

서비스를 만들에 가장 편하게 접근할 수있는건 역시 html 웹 페이지인거 같아요

python  Flask Template 을 이용하여 html 페이지를 출력해보려고 해요

 

플라스크(Flask)는 파이썬으로 작성된 마이크로 웹 프레임워크의 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. BSD 라이선스이다.

- 위키백과 -

 

[예제 코드] main.py

from flask import Flask
from flask import render_template

app = Flask('__name__')

@app.route('/')
def index():
  return render_template('index.html')

if '__name__' == '__main__':
  app.run()

app.run(host='0.0.0.0', port=8080)

 

templates/index.html  :  폴더 / 파일

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
Hello World!
</body>
</html>

 

코드를 살펴보면 

from flask import Flask  #=== Flask 모듈 임포트
from flask import render_template  #=== Flask 모듈 render_template 임포트

app = Flask('__name__') #=== Flask 객체를 app에 할당

@app.route('/') #=== app 객체를 이용해 라우팅 경로 설정 (url 경로라고 생각하면 될거 같아요)
def index():  #=== 라우팅 경로 요청이 올때 실행할 함수 (바로 밑에 작성해야 해요) 
  return render_template('index.html') #=== index.html 반환함 (*html file은 templates 폴더에 위치해야함)

if '__name__' == '__main__':  #=== 메인 모듈로 실행될때 구동
  app.run()

app.run(host='0.0.0.0', port=8080)

웹페이지를 파이썬 flask로 만들었어요~~

이전에 포스팅했던 블로그 api 코드와 웹페이지를 이용해서 블로그 포스팅하도록 템플릿을 구성하려고해요~~

 

https://lim2j.tistory.com/120?category=916641

 

python 네이버 블로그 글쓰기 xmlrpc.client

네이버 블로그 api를 이용해 python 블로그 글쓰기 개발을 해보려고 해요~~ 언어공부에서 가장 빠른 방법은 프로젝트 구성해서 실천하기~ 구글을 열심히 뒤져보니 import xmlrpc.client API_URL = 'https://api.bl..

lim2j.tistory.com

 

반응형
블로그 이미지

2j-story

다양한 지식 공유 알림이 입니다

,
반응형

네이버 블로그 api를 이용해 

python  블로그 글쓰기 개발을 해보려고 해요~~

언어공부에서 가장 빠른 방법은 프로젝트 구성해서 실천하기~

 

구글을 열심히 뒤져보니 

import xmlrpc.client
 
API_URL = 'https://api.blog.naver.com/xmlrpc' 
 
class nblogMgr(object):
    def __init__(self, user_id, api_key):
        self.__server = None
        self.__user_id = user_id
        self.__api_key = api_key
        self.__categories = []
 
        try:
            self.__set_categories()
        except Exception as e:
            raise e
 
    def __client(self):
        if self.__server is None:
            self.__server = xmlrpc.client.ServerProxy(API_URL)
 
        return self.__server
 
    def __set_categories(self):
        categories = self.__client().metaWeblog.getCategories(self.__user_id,
                                                              self.__user_id,
                                                              self.__api_key)
 
        for category in categories:
            self.__categories.append(category['title'])

    def categoriesList(self):
        categories = self.__client().metaWeblog.getCategories(self.__user_id,
                                                              self.__user_id,
                                                              self.__api_key)
        json_data=[]
        for category in categories:
            title = category['title']
            json_data.append(title)

        json_return=json.dumps(json_data)
        
        return json_return
 
    def post(self, title, description, tags, category, publish=True):
        struct = {}
        struct['title'] = title
        struct['description'] = description
        struct['tags'] = tags
        if category in self.__categories:
            struct['categories'] = [category]
 
        try:
            return self.__client().metaWeblog.newPost(self.__user_id,
                                                      self.__user_id,
                                                      self.__api_key,
                                                      struct,
                                                      publish)
        except Exception as e:
            raise e
 
 
 
def main():
    naver = nblogMgr('naver_id', 'api_key')
    naver.post('제목', '<div>post 테스트</div>', 'tag1, 태그2' '카테고리')
 
if __name__ == '__main__':
    main()

Flask 

html 에 form 만들어서 정보입력하면 누구나 사용할 수 있는 형태로 만들고 있는 중이에요~

문제가 하나 있는데... image .... 블로그 포스팅시 image 첨부방식을 해결하지 못했어요..

 

이부분만 해결되면 마무리할 수 있을거 같아요

혹시 해결하신 분 있으면 댓글 남겨주세요 ^^

 

오늘도 열공!!

 

반응형
블로그 이미지

2j-story

다양한 지식 공유 알림이 입니다

,