1

フレームワークを使用せずにゼロから Web サイトを作成するにはどうすればよいですか?

データベースと通信し、ユーザーのアクティビティに基づいてコンテンツを動的に表示する Web サービスを作成したいと考えています。

見栄えをHTML5/CSS3にしたい。

Python または go を介してデータベースと通信することをお勧めします。

データベースは Cassandra です。

私は、この努力のすべてを、API によって実際に何が行われているのか見当もつかない、制限オプションを持ち、API を実行するフレームワークを試すことに費やしたように感じます。

双方向通信の基本を理解できる超簡単な例が欲しいです。/var/www を次のようにしたい:

# ls /var/www

index.html datawriteandread.py

index.html のような単純なものの例: 2 つのボックスがあります。1 つはテキストを取り込んでデータベースに送信し、もう 1 つは最初のボックスの下にそのデータベースの内容をリストします。

2 つ目のファイル datawriteandread.py は、データベースと通信して新しいコンテンツを追加し、古いコンテンツを HTML に表示します。

こんなに単純なものを欲しがる私の無知は何を示しているのだろうか?

Python を Cassandra に書き込むのは簡単です。私が迷っているのは HTML での通信と表示です。私はプログラミングのチョップを持っていますが、webdev は私にとってまったく新しいものです。

4

3 に答える 3

0

Pythonを使用する最も頭の痛い、簡単な方法は、 CGIスクリプトとしてであると思います。Webサーバーは、Pythonスクリプトを実行し、出力を応答にリダイレクトするだけです。フレームワークも何もありません。

「 PythonCGI 」をグーグルで検索して、このような例をたくさん入手できます。そこから、選択したPythonデータベースドライバーを使用してデータベースと直接対話できます。HTMLはPOST、Pythonスクリプトに直接データを送信するだけです。

于 2012-08-24T21:30:43.597 に答える
0

Apache2 を構成するには、次のようにします。

http://narnia.cs.ttu.edu/drupal/node/43 追加

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

<Directory "/var/www/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AddHandler cgi-script .py                       # tell Apache to handle every file with .py suffix as a cgi program
        AddHandler default-handler .html .htm  # tell Apache to handle HTML files in regular way
</Directory>

/etc/apache2/sites-available/default へ

そして、このコード スニペット:

http://wiki.python.org/moin/CgiScripts ...(このリンクを提供してくれた Mike Christensen に感謝)

   1 #!C:\Python27\python.exe -u
   2 #!/usr/bin/env python
   3 
   4 import cgi
   5 import cgitb; cgitb.enable()  # for troubleshooting
   6 
   7 print "Content-type: text/html"
   8 print
   9 
  10 print """
  11 <html>
  12 
  13 <head><title>Sample CGI Script</title></head>
  14 
  15 <body>
  16 
  17   <h3> Sample CGI Script </h3>
  18 """
  19 
  20 form = cgi.FieldStorage()
  21 message = form.getvalue("message", "(no message)")
  22 
  23 print """
  24 
  25   <p>Previous message: %s</p>
  26 
  27   <p>form
  28 
  29   <form method="post" action="index.cgi">
  30     <p>message: <input type="text" name="message"/></p>
  31   </form>
  32 
  33 </body>
  34 
  35 </html>
  36 """ % cgi.escape(message)

組み合わせて、データベースなしで私が望んでいたものを正確に提供しますが、実装は論理的です。

これが次のステップです。

http://www.java2s.com/Tutorial/Python/0440__CGI-Web/Loginform.htm

あなたの index.htm:

<HTML>
<HEAD><TITLE>Login Page</TITLE></HEAD>
<BODY>
<CENTER>
<FORM method="POST" action="http://yourserver/cgi-bin/login.py">
<paragraph> Enter your login name: <input type="text" name="login">
<paragraph> Enter your password: <input type=password name="password">
<paragraph> <input type="submit" value="Connect">
</FORM>
</CENTER>
<HR>

</form>
</BODY>
</HTML>

あなたの login.py CGI:

#!/usr/local/bin/python
import cgi

def header(title):
    print "Content-type: text/html\n"
    print "<HTML>\n<HEAD>\n<TITLE>%s</TITLE>\n</HEAD>\n<BODY>\n" % (title)

def footer():
    print "</BODY></HTML>"

form = cgi.FieldStorage()
password = "python"

if not form:
    header("Login Response")
elif form.has_key("login") and form["login"].value != "" and form.has_key("password") and form["password"].value == password:
    header("Connected ...")
    print "<center><hr><H3>Welcome back," , form["login"].value, ".</H3><hr></center>"
    print r"""<form><input type="hidden" name="session" value="%s"></form>""" % (form["login"].value)
    print "<H3><a href=browse.html>Click here to start browsing</a></H3>"

else:
    header("No success!")
    print "<H3>Please go back and enter a valid login.</H3>"

footer()
于 2012-08-24T23:28:14.840 に答える
0

これは CGI を使用して行うことができます。単純な Python CGI スクリプトは次のようになります。

print "Content-type: text/html"
print

print "Hello, world!"

Python プログラムを CGI スクリプトとして実行するための Web サーバーのセットアップの詳細は、選択した Web サーバーによって異なります。ただし、ドキュメントには、参照できる CGI セクションが必要です。

Pythoncgiモジュールには、ブラウザから送信されたフォーム データの抽出などに役立つさまざまな機能があります。

于 2012-08-24T21:29:10.593 に答える