Что я должен изучить и использовать, чтобы стать профессионалом в PHP и Python Web-разработке? - PullRequest
1 голос
/ 19 марта 2010

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

<html>

<head>
<title>Example #3 TDavid's Very First PHP Script ever!</title>
</head>
<? print(Date("m/j/y")); 
require_once("somefile.php"); 
$mysql_db = "DATABASE NAME";
$mysql_user = "YOUR MYSQL USERNAME";
$mysql_pass = "YOUR MYSQL PASSWORD";
$mysql_link = mysql_connect("localhost", $mysql_user, $mysql_pass);
mysql_select_db($mysql_db, $mysql_link);

$result = mysql_query("SELECT impressions from tds_counter where COUNT_ID='$cid'", $mysql_link);
if(mysql_num_rows($result)) {
   mysql_query("UPDATE tds_counter set impressions=impressions+1 where COUNT_ID='$cid'", $mysql_link);
   $row = mysql_fetch_row($result);
   if(!$inv) {
       print("$row[0]");
   }
}

?>

<body>
</body>
</html>

Вот и все. Я пишу каждый файл, как это. Недавно я изучил ООП и начал использовать классы и объекты в PHP.

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

Во всяком случае, так я занимаюсь веб-разработкой. Теперь я хочу улучшить это. и сделай это профессиональным. Также я хочу перейти на Python. Я искал ТАКИЕ архивы и нашел всех, кто предлагал Джанго. Но кто-нибудь может дать мне некоторое представление о том, как работает веб-разработка на Python?

запрос пользователя (клиента) на страницу ---> веб-сервер (-> встроенный интерпретатор PHP) ----> Серверная часть (PHP) Script ---> MySQL Server.

Теперь, если вместо интерпретатора PHP есть интерпретатор python, а вместо сценария php есть скрипт python, который содержит как HTML, так и python (встроенный в некоторые теги python). Скрипт Python подключается к серверу базы данных и извлекает некоторые данные, которые будут напечатаны в формате HTML. или в мире питонов все по-другому?

Эта штука с Django похожа на фреймворки для PHP? Не может один код в Python без использования Django. Потому что я никогда не встречал ни одного поста без django

Пожалуйста, начните с меня.

Ответы [ 5 ]

3 голосов
/ 19 марта 2010

PHP был создан для создания веб-страниц, поэтому большая часть инфраструктуры уже создана для вас. Python был построен в большей степени как язык сценариев общего назначения, поэтому вам нужна дополнительная инфраструктура для обработки запросов и создания веб-страниц.

Существует несколько платформ для Python. Django является самым популярным, но Pylons - еще один хороший. Взгляните на этот список веб-фреймворков для Python :

Веб-приложение может использовать комбинация базового HTTP-приложения сервер, механизм хранения, такой как база данных, шаблонизатор, запрос диспетчер, модуль аутентификации и инструментарий AJAX. Это может быть отдельные компоненты или быть предоставлены вместе в рамках высокого уровня.

Это самые популярные высокоуровневые рамки. Многие из них включают Компоненты, перечисленные в WebComponents стр.

  • Джанго (выпущено 1.1 2009-07-29) a веб-фреймворк Python высокого уровня, который поощряет быстрое развитие и чистый, прагматичный дизайн

  • Grok (выпущено 1.0 2009-10-07) построен на существующей Zope 3 библиотеки, но стремится обеспечить более легкое обучение и более гибкий опыт разработки. Это делает это сделав упор на конвенции переконфигурация и СУХОЙ (Не Повторите себя).

  • Пилоны (выпущено 0.9.7 2009-02-23) a легкий веб-каркас, подчеркивающий гибкость и быстрое развитие. Это сочетает в себе самые лучшие идеи из миры Ruby, Python и Perl, обеспечивая структурированный, но чрезвычайно гибкий веб-фреймворк Python. Это также один из первых проектов использовать появляющийся стандарт WSGI, что позволяет обширное повторное использование и гибкость, но только если вам это нужно. Из коробки, Pylons стремится сделать Веб-разработка быстрая, гибкая и легко. Пилоны построены поверх пасты (см. ниже).

  • TurboGears (выпущено 2.0 2009-05-27) быстрая веб-разработка мегафреймы, которые вы искали. Сочетает в себе CherryPy, Kid, SQLAlchemy и MochiKit. Создать базу данных на основе, готовое к применению приложение в минут. Все с дизайнером дружественным шаблоны, легкий AJAX в браузере сторона и на стороне сервера, с невероятно мощный и гибкий Объект реляционного сопоставителя (ORM) и с кодом, который так же естественно, как написание функции. После рассмотрения сайт проверить: QuickStart Руководство

  • web2py (1.72.3 Дата выпуска 2009-11-10) Все в одном пакете без дальнейшего зависимостей. Разработка, внедрение, отладка, тестирование, база данных администрирование и обслуживание приложения могут быть сделаны через предоставляется веб-интерфейс. У web2py нет конфигурационные файлы, не требует установка, можно запустить с USB привод. web2py использует Python для Модель, виды и контроллеры, имеет встроенную систему продажи билетов управлять ошибками, интернационализация движок, работает с MySQL, PostgreSQL, SQLite, Oracle, MSSQL и Google App Engine через абстракцию ORM слой. web2py включает в себя библиотеки для обрабатывать HTML / XML, RSS, ATOM, CSV, RTF, JSON, AJAX, XMLRPC, WIKI разметка. Производство готово, способно выгрузка / загрузка очень больших файлов, и всегда обратно совместимы.

  • Zope (2.10.7 Выпущено 2008-10-25, 2.11.2 Выпущено 2008-25-10, Выпущено Zope 3.4.0 2009-01-29) Быть дедушка веб-фреймворков Python, Zope вырос в семью рамки на протяжении многих лет. Zope 1 был выпущен в 1999 году. Zope 2 является веб рамки и общего назначения сервер приложений, сегодня это в основном используется ContentManagementSystems

2 голосов
/ 19 марта 2010

Но кто-нибудь может дать мне некоторое представление о том, как веб-разработка в Python работает

запрос пользователя (клиента) на страницу ---> веб-сервер (-> встроенный интерпретатор PHP) ----> Серверный сценарий (PHP) ---> MySQL Server.

Теперь, это вместо PHP переводчик есть питон интерпретатор & вместо сценария PHP есть скрипт Python, который содержит HTML и Python (встроен в некоторые вид тегов питона). Скрипт Python подключается к серверу базы данных и выбирает некоторые данные, которые будут печатается как HTML. или это отличается в мир питонов?

Вот как работает Django:

  • Страница запросов пользователя.
  • В зависимости от URL-адреса сервер вызывает функцию Python (вы настраиваете это с помощью регулярных выражений).
  • Функция Python выполняет любую работу, которую необходимо выполнить, обычно извлекая некоторые данные из базы данных.
  • Затем вызывается шаблон, который в основном представляет собой HTML-страницу с заполнителями для фактических данных. Механизм шаблонов генерирует HTML-страницу из шаблона и данных.
  • Эта страница отправлена ​​клиенту.

Как видите, основное отличие состоит в том, что логика данных и представление четко разделены (это также возможно в PHP, но не применяется вообще).

1 голос
/ 19 марта 2010

Одна вещь, которую вы могли бы улучшить в своем примере кода: не повторяйте себя .

Вы говорите, что делаете все файлы, как указано выше? Если это так, то у вас есть пароль базы данных в каждом файле, и код для создания соединения повторяется снова и снова. Это беспорядок, и если пароль вашей базы данных когда-либо изменится, у вас будет много файлов для обновления!

Это было бы улучшением:

require_once("database_connection.php");
//Write function in above file that returns database connection.
//That will be the only place you need to give the database name and login.
//Use PDO so that you can use a different database type later if you like, and
//so you get better capabilities
$dbc = default_db_connection();
//If using PDO, you can use parameterized queries 
$query = "INSERT INTO `ninjaturtles` (`name`, `weapon`, `color`) ";
$query .= "VALUES (:name, :weapon, :color)";
//OO style, tells database "I'm going to send a query that looks like the above;
//I'll tell you what data to plug in for those variables in a second."
$st = $dbc->prepare($query);
//Now you tell the database to plug in the following values and run the query.
//User-entered values are automatically escaped and can't possibly screw with
//the query structure - a huge security benefit - see bobby-tables.com
//Also, you can re-run this command by calling execute again with different
// values - faster than starting a new query from scratch
$st->execute(array(
  ':name' => $_POST['name'],
  ':weapon' => $_POST['weapon'],
  ':color' => $_POST['color']
 ));

PDO также дает вам (я думаю) хороший синтаксис для простых запросов:

$query = "SELECT `speed`, `tenacity` FROM `badgers`";
$st=$dbc->query($query);
foreach($st->fetchall() as $row){
  echo 'Speed: ' . $row[`speed`] . '<br />';
  echo 'Tenacity: ' . $row[`tenacity`] . '<br />';
}
0 голосов
/ 19 марта 2010

Существует множество PHP-фреймворков, похожих на Django. Я предлагаю вам попробовать один из них. Как Zend или CodeIgniter.

0 голосов
/ 19 марта 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...