2012-08-24 4 views
1

프레임 워크를 사용하지 않고 처음부터 웹 사이트를 시작하려면 어떻게해야합니까?프레임 워크가없는 웹 사이트

데이터베이스와 통신하고 사용자 활동에 따라 내용을 동적으로 표시하는 웹 서비스를 만들고 싶습니다.

외관을 HTML5/CSS3으로하고 싶습니다.

저는 파이썬을 통해 데이터베이스와 통신하거나 이동하는 것을 선호합니다.

데이터베이스는 카산드라입니다.

나는이 모든 노력을 옵션을 제한하고 실제로 API에서 수행되는 실마리가없는 API를 실행하려고 시도해 본 것처럼 느낀다.

양방향 의사 소통의 기초를 이해할 수있는 아주 간단한 예가 필요합니다.

# 1!은/var/www가

있는 index.html datawriteandread.py

index.html을 같은 간단한의 예 : 두와 내의/var/www가이 같이 할 상자, 텍스트를 가져 와서 데이터베이스에 제출하는 상자 및 데이터베이스의 첫 번째 내용 아래에 나열하는 두 번째 상자가 있습니다.

두 번째 파일 인 datawriteandread.py는 새 콘텐츠를 추가하고 이전 버전을 HTML로 표시하기 위해 데이터베이스와 통신합니다.

무언가를 너무 단순하게 보이기 위해 내 눈에 띄는 부분은 무엇입니까?

파이썬을 카산드라에게 쓰는 것은 쉽습니다. 그것은 내가 잃어버린 HTML에서 의사 소통과 표시입니다. 프로그래밍 샵이 있지만 webdev는 완전히 새로운 것입니다.

답변

0

CGI를 사용하여이를 수행 할 수 있습니다. 간단한 파이썬 CGI 스크립트는 다음과 같을 수 있습니다 : CGI 스크립트는 웹 서버의 선택에 따라 달라집니다로 파이썬 프로그램을 실행하는 웹 서버를 설정

print "Content-type: text/html" 
print 

print "Hello, world!" 

세부 사항. 그러나 참조 할 수있는 문서에는 CGI 섹션이 있어야합니다.

파이썬 cgi module에는 브라우저에서 제출 한 양식 데이터를 추출하는 등의 작업을 수행하는 데 유용한 다양한 기능이 있습니다.

+0

이인가 이러한 프레임 워크가 뒤에 무엇을하고 있는지 장면 에스? – Peregrine

+0

아마도 그렇지 않습니다. 웹 서버와 통합 할 수있는 많은 방법이 있으며 CGI는 가장 쉽고 복잡하지 않습니다 (그러나 사용량이 많은 사이트에 대해서는 성능에 영향을 미칩니다). 파이썬의 또 다른 인기있는 방법은 WSGI입니다. –

+0

CGI는 실행 파일 (이 경우에는 python.exe)을 실행하고 표준 출력을 HTTP 응답으로 리디렉션하는 웹 서버와 유사하다고 생각합니다. 옳은? –

0

저는 뇌가 죽고, 파이썬을 사용하는 간단한 방법이 CGI script 일 것이라고 생각합니다. 웹 서버는 단순히 Python 스크립트를 실행하고 결과를 응답으로 리디렉션합니다. 프레임 워크가 없으며 아무것도 없습니다.

Google에 "Python CGI"을 입력하면 this one과 같이 많은 예제가 제공됩니다. 거기에서 원하는 Python 데이터베이스 드라이버를 사용하여 데이터베이스와 직접 상호 작용할 수 있습니다. 귀하의 HTML은 단순히 POST 데이터를 Python 스크립트에 직접 입력합니다.

+0

뇌사에 의해 당신은 무엇을 의미합니까? 나는 그것을 오독 할 수는 있었지만, 당신이 정확히 무엇을 의미 하는지를 해석한다면 나는 프레임 워크의 사용이 뇌사 옵션이라고 생각했다. 의도 한 용도 외에 쓸모없는 추상화 레이어를 배울 때 그것은 당신을 위해 일할 것입니다. – Peregrine

+0

나는 그런 건축술의 단순함을 과장하기 위하여 의미했다. 당신과 원시 HTTP 응답 사이에는 아무 것도 없습니다. 불필요한 수준의 추상화 및 다운로드 할 프레임 워크가 없습니다. 클라이언트가 원하는 것을 정확히 인쇄합니다. –

+0

파이썬보다 다른 언어를 더 좋아한다면, 다른 언어의 CGI 프로토콜을 검색하면됩니까? – Peregrine

0

이 아파치를 구성하는 방법 :

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> 

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