2017-05-16 4 views
0

저는 Flask를 사용하여 단일 사용자를위한 UI를 호스팅하고 있습니다. 내가 시도한 일은 사용자가 마크 업 언어를 사용하여 문서의 미리 지정된 위치에 텍스트와 이미지를 삽입하는 버튼을 클릭하는 방법을 설정하는 것입니다. 나는 원래 Jinja2를 사용했으나 문제는 사용자가 텍스트를 약간 변경하거나 줄을 추가해야 할 경우에 대비하여 데이터를 삽입 한 후 문서를 수정할 수 있어야한다는 것입니다. 내 지식으로 ' 플라스크 렌더링 템플릿으로 끝내야합니다.Jupyter Notebook Iframe을 Flask에 렌더링하십시오.

ifup을 사용하여 UI에 Jupyter Notebook (마크 업 언어를 기반으로 함)을 가져 오는 것이 가능하지만 그렇게하지 못했음을 이해합니다. 나는 무엇을 시도했다

:

  1. 내 공공 Jupyter 주소가있는 Iframe에 배치
  2. 공개 내 Jupyter 노트북을 구성를 불러옵니다 내 HTML 템플릿 파일 ...에 <iframe width="400" height="400" src="http://10.33.75.112:8888/notebooks/Desktop/Tool/test.ipynb"/> 비어있는 iframe
  3. NBviewer 및 NBconvert와 어울리는 방법으로 내가 그 것을 통합 할 수 있는지 알게되었지만 성공하지 못했습니다.

아이디어가 있으십니까?

답변

0

해결책을 찾았습니다.

Jupyter-notebook-config.py 폴더에는 주석을 제거하고 수정해야하는 몇 가지 옵션이 있습니다. 그런 다음 HTML에서

c.NotebookApp.allow_origin = '*' #Basic permission 
c.NotebookApp.disable_check_xsrf = True #Otherwise Jupyter restricts you modifying the Iframed Notebook 
c.NotebookApp.ip = 'ENTER_YOUR_JUPYTER_IP_ADDRESS' #Appears in the top browser bar when you launch jupyter 
c.NotebookApp.port = 8888 #Your choice of port 
c.NotebookApp.token = '' #In my case I didn't want to deal with security 
c.NotebookApp.trust_xheaders = True #May or may not make a difference to you 

c.NotebookApp.tornado_settings = { 
'headers': { 
'Content-Security-Policy': "frame-ancestors 'http://127.0.0.1:5000/' 'self' " 
} 
} #assuming your Flask localhost is 127.0.0.1:5000 

:

<iframe width="1000" height="1000" src="http://ENTER_YOUR_JUPYTER_IP_ADDRESS:8888/notebooks/Desktop/test.ipynb"/> 

편집 : 또한 구글 크롬이 그렇게 Mozilla 또는 IE를 사용할처럼 iframe을 표시하는 오류가 있습니다.

관련 문제