2009-08-21 2 views
11

PHP를 웹 응용 프로그램 용으로 파이썬으로 전환하는 방법을 생각하고 있습니다.하지만 파이썬이 PHP처럼 HTML을 짜 맞추기에 익숙한 지 궁금합니다. 기본적으로 <? and ?>을 사용하여 원하는 위치에 PHP를 넣는 것은 매우 쉽고 직관적 인 것으로 알고 있지만 원하는 경우 HTML을 정리하거나 정리할 수 있습니다. 파이썬으로 이것을 쉽게 할 수 있습니까? 근본적으로, 질문은 : 사용의 용이성 측면에서 PHP로 HTML로 작업하는 것과 비슷한 파이썬으로 HTML을 사용하고 있는가?파이썬은 PHP와 비교하여 HTML로 어떻게 '흐르게'할 수 있습니까?

편집 : 아래의 코멘트에 혼란의 일부를 정리하기 위해 생각, 나는 PHP가있는 동안 파이썬 것, 웹 사이트의 프레젠테이션 부분 프런트 엔드 조직에서 파이썬보다 더 나은 것이라고 직감을 얻을 백엔드 부분에서 뛰어나다 (실제 프로그래밍 ...). 문제는 - 내가 틀렸고 프론트 엔드를위한 PHP만큼 좋은 파이썬인가?

내 편집 편집 : 아, 내 방식의 오류를 이해하기 시작합니다. 나는 무의식적으로 나쁜 습관을 가지고있는 것 같다. 다음을 수행 예를 들어, 의사 코드에서 PHP를 가질 : 나는 항상 (표준 읽기) : 괜찮다고 생각

If user has filled out form: 
    print this html 
else: 
    print this html 

사실 나는 9 월은 PHP와 HTML 템플릿을 사용한다

. 파일. 그리고 그 시나리오에서, PHP와 파이썬은 심지어 싸우는 분야에 있으며, 아마 내 자신의 프로그래밍 언어의 취향에 달려 있습니다.

+2

re : 편집 편집. 프로그래밍을 시작할 때 배워야 할 습관 중 일부는 프로젝트가 커지면 항상 확장/가치있는 것은 아니라는 사실을 알게되어 매우 영광스럽고 상쾌합니다. –

답변

24

PHP와 Python을 쉽게 비교할 수 없습니다.

PHP는 특히 Apache 플러그인으로 설계된 웹 처리 프레임 워크입니다. 여기에는 프로그래밍 언어뿐만 아니라 HTTP 프로토콜 처리도 포함됩니다.

Python은 "그냥"프로그래밍 언어입니다. 파이썬을 아파치에 연결하는 많은 파이썬 웹 프레임 워크가 있습니다. mod_wsgi, CGI 및 다양한 수준의 웹 응용 프로그램 프레임 워크가 있습니다.

"내가 원하는 곳에서 PHP를 사용하는 것"은 웹 응용 프로그램을 작성하기위한 언어로 파이썬을 판단하는 적절한 방법이 아닙니다.

프레임 워크 (예 : Pylons, Django, TurboGears 등)는 프리젠 테이션 (HTML 템플리트)과 데이터베이스 액세스 간의 프로그래밍을 구분합니다. PHP는 웹 애플리케이션의 세 가지 측면 모두를 하나의 PHP 언어로 결합합니다.

PHP에서 Python으로 전환하려면 다음을 수행해야합니다.

  1. 선입견없이 시작하십시오.

  2. 선택한 프레임 워크에 대한 자습서로 새로 시작하십시오. PHP와 비교하지 않고 튜토리얼 전체를 수행하십시오.

  3. 선택한 프레임 워크에서 선택한 문제를 해결할 때 새로 시작하십시오. PHP로하는 일과 비교하지 않고 전체적인 것을 구축하십시오.

PHP와 비교하지 않은 채 Python 기반 웹 프레임 워크를 사용하여 뭔가를 만들었 으면, 뒤로 물러나서 두 가지를 비교하고 대조 할 수 있습니다.

Python - substr, java and python equivalent of php's foreach($array as $key => $value), what is python equivalent to PHP $_SERVER?과 같은 질문을하는 사람들은 때때로 PHP 지식을 파이썬에 매핑하려고합니다. 이것을하지 마십시오.

파이썬 웹 프레임 워크를 사용하는 유일한 방법은 완전히 새로 시작하는 것입니다.


편집

모든 파이썬 웹 프레임 워크는 템플릿 엔진에 약간의 "프리젠 테이션 로직"기능이 있습니다. 이것은 단순한 템플릿을 쉽게 엉망으로 만들 수있는 "미끄러운 경사"입니다.분명히 간단한 {% if %}{% for %} 구조는 HTML 템플릿의 조건 적 요소와 반복 요소를 단순화하는 데 도움이됩니다.

그 이상으로, 얼마나 많은 전력을 태그 언어에 넣어야할지 어지럽기 시작합니다.

극단적으로 우리는 PHP/JSP 및 관련 기술을 사용하여 템플릿 엔진이 모든 작업을 수행 할 수 있습니다. 이것은 뒤죽박죽이다. 가운데가 Jinja이고 Mako인데 템플릿 엔진이 많은 역할을 할 수 있습니다. 다른 한편으로는 템플릿 엔진이 프리젠 테이션과 프로세싱 로직의 혼란을 피하기 위해 최대한 적게하는 Django가 있습니다.

+0

@ S.Lott : 놀라운 대답. 완전히 동의 해. 나는 아직도 명확하게하기 위해 노력하고있는 것 같다. (그리고 아마도 내가 말하려고 시도 할 때까지는 말하지 않을 것이다.) 위의 bobince가 한 말이다 : 가끔은 프리젠 테이션 로직이있다. 그리고 PHP를 직접 사용하는 것이 이치에 맞다. HTML. 제 질문은 - 파이썬 웹 프레임 워크에서 파이썬을 프리젠 테이션 로직으로 쉽게 사용할 수 있는지, 아니면 PHP와 파이썬 사이에 근본적인 차이점이 있는가하는 것입니다. 파이썬은 파이썬이 동일한 프리젠 테이션 목표를 달성 할 수는 있지만 완전히 다른 방식으로 수행 할 수 있습니다. ? – sepiroth

+0

@hatorade : 템플릿 작성에는 여러 가지 방법이 있으며, 이는 사용자의 특정 요구에 따라 달라집니다. 순수 PHP 템플릿에 가장 유사한 것은 Mako 템플릿 라이브러리라고 생각합니다. Python 언어를 프로그래밍 언어로 재사용하는 템플릿 언어가있어서 이미 파이썬을 알고 있다면 배우기 쉽고 강력합니다. –

2

음. 우선, 프레젠테이션과 코드를 혼합하는 것은 나쁜 습관으로 간주된다는 것을 알아야합니다. Mako과 같이 HTML 내부에있는 파이썬 코드를 혼합 할 수있는 템플릿 엔진을 사용할 수 있지만 일반적으로 파이썬 웹 라이브러리와 프레임 워크는 파이썬 스크립트 파일과 별도의 HTML 템플릿을 작성하여 결과를 렌더링하는 경향이 있습니다.

즉, 파이썬은 PHP보다 훨씬 쉽습니다.

그러나 파이썬으로 만 생산성을 높일 수 있습니다 당신은 프로그래밍 방법을 배우고 싶어합니다.

PHP를 원한다면 PHP 자체보다 PHP가 더 많지는 않습니다. 파이썬은 다른 접근 방식을 취합니다. 익숙하지 않은 것들로 인해 좌절 할 수 있습니다.

그러나, 새로운 일을하는 더 좋은 방법을 찾고 있다면, 파이썬이 당신을위한 것입니다.

basic python tutorial을 읽은 후 pylons과 같은 python 웹 프레임 워크를 사용해보고 직접 확인하십시오.

+1

@nosklo : 당신이 의미하는 바를 확장 할 수 있습니까? '프레젠테이션을 통해 코드를 수정하고 있습니까?' 나는 단순히 PHP를 넣고, 그 뒤에 HTML을 아무런 제약없이 넣는 것을 언급했다. PHP와 HTML이 올바르게 탭되도록했다. 그러나 Python을 사용하여 Python 탭 표준에 맞게 HTML을 탭해야한다고 생각했습니다. 그러나 파이썬과 HTML이 일반적으로 서로 다른 파일로 분리된다는 것은 흥미 롭습니다. 나는 그것을 몰랐다. 내가 좀 더 읽어야 할 것 같아. – sepiroth

+0

프리젠 테이션을 도메인 로직과 혼합하는 것은 나쁜 습관입니다. 그러나 도메인에서 가져온 데이터를 출력하지 않으면 동적 언어를 사용하여 시작하는 것이 무엇입니까? 나는 그가 HTML보기 페이지에서 파이썬의 데이터를 출력하는 것이 얼마나 쉽고 자연스러운 것인지 묻고 있다고 생각한다. –

+1

하나의 파일을 작성하는 대신 비즈니스 로직을 입력 및 프리젠 테이션으로부터 격리시키는 코드를 작성하여 각각 독립적 인 개발, 테스트 및 유지 보수를 허용하십시오. 무언가를하는 코드는 파이썬 파일에 있습니다. HTML은 결과를 보여주기위한 몇 개의 자리 표시 자와 여러 요소를 렌더링하기위한'for '와 같은 간단한 구조를 가지고 있습니다. – nosklo

0

예, PHP는 이런 식으로 사용하기 쉽습니다. 그러나 그것은 권장 된 방법이 아닙니다! 템플릿을 사용하는 것이 좋습니다. 사실, PHP에서도 같은 것을 사용할 수 있습니다.

1

우선, 작은 해킹을 할 때 HTML에서 프로그래밍 언어로 탈출하는 것이 좋습니다. 실제 프로덕션 웹 응용 프로그램의 경우에는 절대로 그렇게하지 않을 것입니다.

HTML을 프로그래밍 언어로 혼합하는 것은 실용적이지 않습니다. 일종의 템플릿 언어를 사용하는 것이 좋습니다. 들여 쓰기는 파이썬에서 다른 어떤 언어보다도 큰 이슈가 아닙니다.

그러나 실제 질문에 답하는 것은 같습니다. Python 템플릿 언어를 사용하면 원하는대로 Python으로 도망 갈 수 있습니다. 차라리 그렇게하지 말라고 권하고 싶지만 그렇게 할 수는 있습니다.

2

MVC 웹 프레임 워크로 발전한다면 실제로 PHP와 Python 모두 HTML을 비슷한 방식으로 사용한다는 것을 알게 될 것입니다.

요청을 처리하는 작업은 데이터를 가져 오는 모델을 사용하여 컨트롤러에서 수행됩니다. 그 결과는 실제로 HTML의 템플리트 인 뷰에 게시됩니다.

잘 배치 된 HTML 파일을보기로 만들 수 있으며 컨트롤러는 그 자체로 무엇을 채울 지 간단하게 알려줍니다.

PHP에서 이것은 종종 alternative PHP syntax으로 이루어집니다.

관련 문제