質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1912閲覧

pythonでwebの構築がわかりません

IsshinToyonaga

総合スコア14

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/01/16 07:39

今みんなのpython webアプリ編(http://coreblog.org/ats/stuff/minpy_web/)で勉強しているのですが
RSSリーダーを作るところがあるんですが
コードを書いて、実行してみているんですがサーバは動いているんですがRssリーダーも何も表示されずに、真っ白の画面です
chmod 775 で権限を与えているのですが、、、
どうすればいいですか?

httphandler.py
#!/usr/bin/env python

coding: utf-8

標準モジュールをimportする

import cgi
import os

class Request(object):
"""
HTTPのリクエストをハンドリングするクラス
CGI側でインスタンスを生成することによって利用する
クエリデータや環境変数へのアクセス,主要ヘッダへの
アクセス用メソッドを提供
"""

def __init__(self, environ=os.environ): """ インスタンスの初期化メソッド クエリ,環境変数をアトリビュートとして保持する """ self.form=cgi.FieldStorage() self.environ=environ

import time

_weekdayname = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
_monthname = [None,
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

class Request(object):
"""
HTTPのレスポンスをハンドリングするクラス
レスポンスを送る前にインスタンスを生成して利用する
レスポンスやヘッダの内容の保持、ヘッダを含めたレスポンスの送信を行う
"""

def __init__ (self,charset='utf-8'): """ インスタンスの初期化メソッド ヘッダ用の辞書、本文用の文字列などを初期化する """ self.headers={'Content-type':'text/html;charset=%s' % charset} self.body="" self.status=200 self.status_message='' def set_header(self,name,value): """ レスポンスのヘッダを設定する """ return self.headers.get(name,None) def set_body(self,bodystr): """ レスポンスとして出力する本文の文字列を返す """ self.body=bodystr def make_output(self,timestamp=None): """ ヘッダと本文を含めたレスポンス文字列を作る """ if timestamp is None: timestamp = time.time() year, month, day, hh, mm, ss, wd, y, z = time.gmtime( timestamp) dtstr="%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( _weekdayname[wd], day, _monthname[month], year, hh, mm, ss) self.set_header("Last-Modified", dtstr) headers='\n'.join(["%s: %s" % (k, v) for k,v in self.headers.items()]) return headers+'\n\n'+self.body def __str__(self): """ リクエストを文字列に変換する """ return self.make_output().encode('utf-8') def get_htmltemplate(): """ レスポンスとして返すHTMLのうち、定義型文を返す """ html_body=u""" <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head> <body> %s </body> </html>""" return html_bod

rssparaser.py
#!/usr/bin/env python

coding: utf-8

標準モジュールをimportする

import cgi
import os

class Request(object):
"""
HTTPのリクエストをハンドリングするクラス
CGI側でインスタンスを生成することによって利用する
クエリデータや環境変数へのアクセス,主要ヘッダへの
アクセス用メソッドを提供
"""

def __init__(self, environ=os.environ): """ インスタンスの初期化メソッド クエリ,環境変数をアトリビュートとして保持する """ self.form=cgi.FieldStorage() self.environ=environ

import time

_weekdayname = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
_monthname = [None,
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

class Request(object):
"""
HTTPのレスポンスをハンドリングするクラス
レスポンスを送る前にインスタンスを生成して利用する
レスポンスやヘッダの内容の保持、ヘッダを含めたレスポンスの送信を行う
"""

def __init__ (self,charset='utf-8'): """ インスタンスの初期化メソッド ヘッダ用の辞書、本文用の文字列などを初期化する """ self.headers={'Content-type':'text/html;charset=%s' % charset} self.body="" self.status=200 self.status_message='' def set_header(self,name,value): """ レスポンスのヘッダを設定する """ return self.headers.get(name,None) def set_body(self,bodystr): """ レスポンスとして出力する本文の文字列を返す """ self.body=bodystr def make_output(self,timestamp=None): """ ヘッダと本文を含めたレスポンス文字列を作る """ if timestamp is None: timestamp = time.time() year, month, day, hh, mm, ss, wd, y, z = time.gmtime( timestamp) dtstr="%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( _weekdayname[wd], day, _monthname[month], year, hh, mm, ss) self.set_header("Last-Modified", dtstr) headers='\n'.join(["%s: %s" % (k, v) for k,v in self.headers.items()]) return headers+'\n\n'+self.body def __str__(self): """ リクエストを文字列に変換する """ return self.make_output().encode('utf-8') def get_htmltemplate(): """ レスポンスとして返すHTMLのうち、定義型文を返す """ html_body=u""" <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> </head> <body> %s </body> </html>""" return html_bod

rssreader1.py
#!/usr/bin/env python

coding:utf-8

from rssparser import parse_rss
from httphandler import Request, Response, get_htmltemplate
import cgitb; cgitb.enable()#(1)

form_body=u"""

<form method="POST" action="/cgi-bin/rssreader1.py"> RSSのURL: <input type="text" size="40" name="url" value="%s"/> <input type="submit" /> </form>"""

rss_parts=u"""

<h3><a href="%(link)s">%(title)s</a></h3> <p>%(description)s</p> """

content=u"URLを入力してください"
req=Request()
if req.form.has_key('url'):
try:
rss_list=parse_rss(req.form['url'].value)
content=""
for d in rss_list:
content+=rss_parts%d
except:
pass

res=Response()
body=form_body%req.form.getvalue('url','')
body+=content
res.set_body(get_htmltemplate()%body)
print res

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2016/01/16 08:29

何らかのエラーが起きているのではないかと思います。エラーの内容は見られますか?
IsshinToyonaga

2016/01/16 09:40

何かしらのエラーがあったらブラウザで確認した時にerrerってでるんですがそれも表示されずにずっと真っ白です、
Lhankor_Mhy

2016/01/16 09:45

コメントの#が抜けていたりするのは、実際のコードではちゃんと書いてあるんですよね?
IsshinToyonaga

2016/01/16 09:50

投稿に乗せたのが、自分で見ながら書いたコードです!もしかして、コメントみたいな感じで書いてある"""が原因でしょうか?
Lhankor_Mhy

2016/01/16 10:12

いえ、#がないことが気になっています。ご存知とは思いますが、あれがそのままなら全く動かないと思います。
IsshinToyonaga

2016/01/16 10:30

ありがとうございます!やってみます!同じエラーが出たらまた聞いても大丈夫ですか??
Lhankor_Mhy

2016/01/16 10:55

お手伝いできることであれば!
wata

2016/01/31 06:02

""" で書いてあるには、コメントではなくdocstringです。問題ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問