PHP perspektifinden Python'u sunucu dili olarak kullanma


11

Ben sadece PHP ile sunucu tarafı programlama biliyorum. Bana göre, ben içine bir şeyler yazmak index.phpve çağrı http://localhost/index.phpve PHP script sonuçlarını görebilirsiniz. CakePHP kullanıyorum ve URL yeniden yazma ile yapabileceğiniz bir şey olduğunu anlıyorum, ama bence, URL'ler ve sunucudaki PHP dosyaları arasında bire bir ilişki var.

Şimdi Python ile çok şey yapıyorum, ama sadece komut satırı faydaları. Bir sonraki projem için PHP yerine Python kullanmak istiyorum. Şimdiye kadar, mod_pythonherhangi bir çıktı almak için Pilonlar veya Bükülmüş hatta Django gibi bir çerçeve kullanmam gerektiği söylendi . Diğerleri ben sadece print()bir HTTP üstbilgisi zorunda ve sonra ben PHP ile kullanılan gibi çıktı çıktı söyledi.

Temel olarak sadece bir dizin listesini alan ve güzel yapan bir şey yazmak istiyorum, böylece bir grup PDF dosyasına bir mobil tarayıcıdan erişebiliyorum. PHP ile bunu nasıl yapacağımı biliyorum, nasıl HTML üretecek bir Python komut dosyası oluşturmak için biliyorum. Ben sadece açtığımda bu komut dosyası yürütmek için nasıl bilmiyorum http://localhost/pdfcentral/.

Sunucumu nasıl yapılandırmam gerekir? Ubuntu 10.04 üzerinde çalışır.


Alabileceğiniz birçok varyasyon var, ancak en basit yol Python betiğini cgi-bindizininize koymaktır, böylece sunucu onu çalıştırmayı bilir ve isteğe bağlı olarak farklı bir yol kullanmak isterseniz bir PHP dosyası yönlendirmesi yapar. Python betiği ile ilgili olarak şu prosedürü takip edebilirsiniz: forrestbao.blogspot.com/2009/08/…
ionFish

Yanıtlar:


9

mod_pythonartık aktif olarak geliştirilmiyor. Apache bunun projenin öldüğü anlamına gelmediğini söylese de -

Şu anda mod_python aktif geliştirme aşamasında değildir. Bu, bazı insanların iddia ettiği gibi "ölü" olduğu anlamına gelmez. Smiply, kodun ve projenin sürdürülmesi için çok az ihtiyaç duyulduğunda yeterince olgun olduğu anlamına gelir.

Ancak, bunun yerine mod_wsgi kullanmanız önerilir . Her şeyi sıfırdan oluşturmak istiyorsanız. Bunu bir öğrenme egzersizi olarak kullanmadığınız sürece, önermemeliyim.

Ağır kaldırma - elleçleme rotası, istekler ve benzerlerini yapmak için bir web çerçevesi kullanmak daha iyi olurdu

Python web çerçevelerinin kapsamlı bir listesi burada mevcuttur , ancak popüler olanlardan bazıları -

  • Django - Ruby on Rails'in Python eşdeğeri olarak kabul edilir ve oldukça ağır bir iştir, bu yüzden ihtiyacınız olan şey için iyi bir seçim olmaz.
  • Flask - Bir mikroçerçevedir. Yani, küçüktür, yolunuza çıkmaz ve çok fazla pil gerektirmeyen küçük projeler için idealdir.
  • Piramit - Pilon inşa eden aynı grup tarafından inşa edilmiştir, bu da geçersiz değildir. Flask ve Django arasında bir yerdedir - ikisinin de yerine kullanılabilir.
  • Şişe - Bu başka bir mikro çerçevedir ve Flask'tan daha da azdır. Sadece bir dosya ve standart kütüphaneden başka hiçbir bağımlılık (yerleşik şablon motoru kullanıyorsanız), bu yüzden ne istediğiniz için güzel bir uyum olacaktır.
  • Web.py - Bir kez güçlendirilen Reddit (edinildikten sonra yeni araçlarla yeniden yazıldı).
  • webapp2 - Bu, Google App Engine için standart bir çerçevedir (ancak diğer çerçeveleri de kullanabilirsiniz).

Bunlardan, kullandığım ve hiçbir şikayetim olduğu gibi Flask'ı tavsiye ederim. Ayrıca, sitenizde daha fazla özellik istiyorsanız hayatı daha kolay hale getirecek birçok uzantıya sahiptir.

Ayrıca, html'nizi monte etmek için bir şablon motoruna ihtiyacınız olacaktır. Jinja2 , Flask yapan aynı adamlar tarafından inşa edilmiş ve oldukça yaygın olarak kullanılmaktadır. Ancak phpweb geliştirmeden geldiğinde, Mako'yu daha doğal kullanarak bulabilirsiniz , bu da oldukça popülerdir.

İşte Python Web geliştirme hakkında daha kapsamlı bir SSS - Python SSS: Webdev .


1
Şimdi bir test makinesinde FastCGI und lighttpd ile çalışan küçük bir Flask projem var, sunucuda da çalışmalıdır. Çok teşekkür ederim!
Martin Ueding

1

Soruyu biraz kafa karıştırıcı buldum ve eğer haklıysam, asıl amacın güzel stil kullanarak cep telefonunuza dosya sunmak olduğunu varsayalım?

Bu doğruysa, bir şey ayarlamak için çok fazla döngüye gitmenize gerek yoktur.

Apache2, ana dosya listeleme dizinini düzenlemenize izin verir, böylece istediğiniz gibi stil uygulayabilirsiniz.

Ayrıca çevrimiçi hazır birçok ana tema var, sadece Apache2 Dizin Listesi için Tema için Google'da arama yapın, duyarlı hale getirmek de zor olmayacaktır.

Apache'nin varsayılan görünümünü nasıl değiştireceğinize dair bazı bilgiler

Ve heres kullanıma hazır bazı şablonlar, çok daha fazlası var ....

Repos Stili

Recurser

Endeksler


Bu ilk sorunu oldukça iyi çözüyor gibi görünüyor. Ben PHP'den Python'a taşımak için ilk proje olarak kullanabileceğini düşündüm. Python projesi durursa, buna bir göz atacağım. Teşekkürler!
Martin Ueding

Hoş geldiniz;)
Simon Hayter
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.