ubuntu'da python web sitesi yapmak

Başlatan idea, 13 Mart 2011 - 00:14:56

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

idea

arkadaşlar ubuntunun en son ve güncel sürümü yüklü. 10.10

python ile yazılmış bir site scriptini ubuntuda çalıştımak istiyorum.

mesela *.php dosyalarını localhostta çalıştırabiliyorum. aynı şekilde *.py ile yazılmış dosyaları da localhostta çalıştırabilir miyim?

teşekkür ederim.

eribol

Python ile de yapılabiliyor(sanırım) ama tavsiye django olacaktır. Geçmiş SUDO sayılarında açıklanmıştı. Türkçe kaynakta netten bulabilirsiniz.

idea

hocam googledan arattım da bulamadım. son çare buraya yazdım.
bilgisi olan varsa yada bir link varsa paylaşabilir mi lütfen? tşk.

elimde bir script var python ile yazılmış bunu localhostta çalıştırmak istiyorum sadece.

dosya düzenlemesini not defteri ile de yapabilirim yani sorun değil.

eribol

Python tam olarak o şekilde çalışmıyor diye biliyorum. Biraz farklı, ya da ben yanlış biliyorum. Pythonu kullanacak web programcılar djangoyu kullanır genelde.

jayw

Aşağıdaki dosyayı ev dizininiz altına sunucu.py adıyla kaydedin.

#!/usr/bin/env python
#python server (968)

webdir = '.' #where html and cgi-bin files live
port = 8080    #use http://localhost:8080/

import os, sys
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler

if len(sys.argv) > 1: webdir = sys.argv[1]
if len(sys.argv) > 2: port = int(sts.argv[2])
print 'webdir: "%s", port %s' % (webdir, port)

#windows hack, os.environ not propagated
if sys.platform[:3] == 'win':
    CGIHTTPRequestHandler.have_popen2 = False
    CGIHTTPRequestHandler.have_popen3 = False #emulate path after fork
    sys.path.append('cgi-bin')                #else only adds my dir

os.chdir(webdir)                              #run in HTML root dir
srvraddr = ("", port)                         #my hostname, port number
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()                       #serve clients till exit


Ev dizininize cgi-bin adında bir dizin oluşturup, içine denemek istediğiniz dosyayı atın ve aşağıdaki komutla dosyaya çalıştırılabilme yetkisi yetkisi verin.
chmod a+x betik.py

Pyton sunucunuzu aşağıdaki komutla uçbirimde çalıştırın ve bu pencereyi kapatmayın.
sudo python sunucu.py

Daha sonra tarayıcınızda aşağıdaki kodu çalıştırarak test edin.
http://localhost:8080/cgi-bin/betik.py


ÖNEMLİ NOT: Yukarıda yazdıklarımı denemedim, sadece aşağıdaki bağlantıdan çeviri yaptım. Umarım işinize yarar.
http://ubuntuforums.org/showthread.php?t=1200405

idea

denedim ama olmadı.

boş bir sayfa çıkıyor.

denenen index.py dosyası:

print "Content-type: text/html\n"
print "<TITLE>CGI 101</TITLE>"
print "<H1>A First CGI script</H1>"
print "<P>Hello, CGI World!</P>"

eribol

Önerim hâlâ geçerli. Django bu işleri kendisi yapıyor zaten.

jayw

index.py dosyanızın ilk satırı da

#!/usr/bin/env python

şeklinde değil mi? Ben aşağıdaki dosya ile deneme yaptım ve çalıştı. Siz de bu kodu betik.py adıyla kaydedip, çalıştırılabilir yetkisi verip dener misiniz?

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""


Bunu da deneyelim olmazsa @eribol'un önerdiği gibi, işi uzmanı Django'ya bırakalım. :)

idea

yapacak bişey yok o zaman.. birde

Django'yu deneyelim.. kurulumu için bir link verebilir misiniz?

ilgilendiğiniz için teşekkürler.


edit: kurulum için link buldum.
http://www.ubuntuhakkinda.com/Makale/96/ubuntuda_django_kurulumu

husonet

Merhaba,

www.pythontr.com cgi-python ile kodlanmıştır. Cgi-Python la kod yazmak zor gözükebilir fakat o kadar da zor gelmedi bana sebebi ise template html kodlarını python dosyalarından ayırmamdı. Bu arada arkadaşların dediği gibi tafsiye edilen bir yöntem değildir.

.py uzantılı dosyaları çalıştırmak için yapmanız gereken .htaccess dosyasını yapılandırmak.

Örnek .htaccess dosyası

Options +ExecCGI
AddHandler cgi-script .py
DirectoryIndex index.py

Kolay Gelsin...