Сайты без рамок

Как запустить сайт с нуля без использования фреймворка?

Я хочу создать веб-сервис, который взаимодействует с базой данных и динамически отображает содержимое в зависимости от активности пользователя.

Я хочу, чтобы внешний вид был HTML5/CSS3.

Я бы предпочел общаться с базой данных через Python или идти.

База данных - Кассандра.

Я чувствую, что все эти усилия я вложил в пробные фреймворки, которые имеют ограниченные возможности и запускают API, где я понятия не имею, что на самом деле делает API.

Я хочу очень простой пример, который я могу понять основы двустороннего общения. Я хочу, чтобы мой /var/www выглядел так:

# ls /var/www

index.html datawriteandread.py

Пример чего-то такого простого, как index.html: с двумя полями, одно из которых принимает текст и отправляет его в базу данных, а второе - ниже первого, в котором перечисляется содержимое этой базы данных.

И второй файл, datawriteandread.py, для связи с базой данных для добавления нового контента и отображения старого в HTML.

Что из моего невежества проявляется в желании чего-то такого простого?

Написание Python для Cassandra достаточно легкое, я теряю связь и отображение в HTML. У меня есть программы программирования, но Webdev совершенно новый для меня.

3 ответа

Это для настройки Apache2:

http://narnia.cs.ttu.edu/drupal/node/43 add

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... (спасибо Майку Кристенсену за эту ссылку)

   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()

Я думаю, что самым мертвым, простым способом использования Python был бы сценарий CGI. Ваш веб-сервер просто запустит ваш скрипт на Python и перенаправит вывод в ответ. Нет рамок, нет ничего.

Вы можете Google для " Python CGI" и получить множество примеров, таких как этот. Оттуда вы сможете напрямую взаимодействовать с базой данных, используя драйвер базы данных Python по вашему выбору. Ваш HTML просто POST данные в ваш скрипт Python напрямую.

Вы можете сделать это с помощью CGI. Простой скрипт Python CGI может быть:

print "Content-type: text/html"
print

print "Hello, world!"

Детали настройки вашего веб-сервера для запуска программы на Python в виде CGI-скрипта будут зависеть от вашего выбора веб-сервера. Однако в документации должен быть раздел CGI, к которому вы можете обратиться.

Питон cgi Модуль имеет различные функции, которые будут полезны для таких вещей, как извлечение данных формы, отправленных браузером.

Другие вопросы по тегам