Среда, 17 Января 2018, 08:01

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [307]
Статьи об общих понятиях связанных с созданием игр.
Программирование [69]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [70]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [58]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Сколько часов подряд вы обычно играете?
Всего ответов: 913
Главная » Статьи » Создание игр

Создаем свой сайт/игру на Python. Часть 2
Вступление

В этой статье мы вам поведаем о вкусном и полезном шаблонизаторе, мучительным формам и о базах данных, которые обогатились витамином SQL.

Шаблонизация

Писать HTML код внутри кода Python - звучит ещё куда не шло. Но вот писать на Python внутри HTML - это уже настоящий абсурд. К счастью, Web.Python вас спасает от таких явлений.
Давайте создадим директорию для наших шаблонов и назовём её templates. В ней создаём файл index.html и пишем туда привычный HTML-код:
Код
<em>Hello</em>, world!

Да-да, мы уже вас достали приветствием мира, поэтому можете написать туда, что хотите.
Кстати, вы также можете использовать не HTML, а язык шаблонизатора Python, он не обидится:
Код
$def with (name)
$if name:
  I just wanted to say <em>hello</em> to $name.
$else:
  <em>Hello</em>, world!

Теперь вернёмся к нашему скрипту и допишем под первой строкой следующий код:
Код
render = web.template.render('templates/')

Это заставит Python зашевелить обработчик шаблонов. Теперь заменяем всё внутри index.GET на следующее:
Код
name = 'Bob'  
return render.index(name)

Теперь при входе на сайт скрипт будет приветствовать не мир, а некого Боба.
Сейчас давайте сделаем так, чтобы сайт приветствовал того, кто зашёл на сайт. А если он своё имя ввести не захочет - по прежнему кричал "привет" всему миру. Делается это при помощи web.input:
Код
i = web.input(name=None)
return render.index(i.name)

Теперь сделаем так, чтобы страница принимала эти самые input`ы. Для этого в нашем списке URL заменяем инструкцию про index на:
Код
'/(.*)', 'index'

И сменим назначения index.GET на:
Код
def GET(self, name):
  return render.index(name)

Заходим на наш сайт. Мы увидим приветствие в адрес мира. Теперь зайдём, например, не в корень сайта, а на
Код
/?name=Joe
. Скрипт скажет привет Джо.

Базы данных

Необходима установленная база данных. Это может быть MySQL или PostreSQL. Создаём новый объект для базы данных:
Код
db = web.database(dbn='postgres', user='username', pw='password', db='dbname')

Если у вас база данных MySQL, а не PostreSQL, то postgres заменяем на mysql.
Имя пользователя, пароль и базы данных соответственно тоже меняем на свои. Если же вы с базами данных вообще не знакомы и вам неведомо, что написано выше, рекомендуем немедленно ознакомиться здесь.
Теперь создадим в вашей базе данных таблицу:
Код
CREATE TABLE todo (
  id serial primary key,
  title text,
  created timestamp default now(),
  done boolean default 'f' );

И добавим туда строку:
Код
INSERT INTO todo (title) VALUES ('Learn web.py');

И внутри index.GET заменяем весь код на этот:
Код
def GET(self):
  todos = db.select('todo')
  return render.index(todos)

И вернём назначение URL index на родину:
Код
'/', 'index',

Сейчас надо заменить код в шаблоне index.html:
Код
$def with (todos)
<ul>
$for todo in todos:
  <li id="t$todo.id">$todo.title</li>
</ul>

Заходим в корень сайта и видим текст: Learn web.py.

Формы

В конец шаблонa index.html добавляем:
Код
<form method="post" action="add">
<p><input type="text" name="title" /> <input type="submit" value="Add" /></p>
</form>

Если вы знакомы с курсом php, то уже понимаете, о чём речь. Если же нет, то знайте: мы даём пользователям возможность самим вводить данные прямо на сайта. Проще говоря - форма, подобная той, которую вы заполняете на сайтах, вводите информацию.
Список URL тоже заменяем:
Код
'/', 'index',
'/add', 'add'

И добавляем ещё один класс для обработки введённой информации:
Код
class add:
  def POST(self):
  i = web.input()
  n = db.insert('todo', title=i.title)
  raise web.seeother('/')

Теперь вы можете с чистой совестью отправлять POST запросы при помощи формы. web.input опять вам в помощь: его используют и GET, и POST запросы. Дело в том, что обработчику совершенно всё равно, как передан запрос. Его интересуют параметры и значения. Метод передачи - дело клиента, который передаёт, и сервера, который принимает.
db.insert заносит значения в базу данных.
На этом второй урок серии Создаем свой сайт\игру на Python подходит к концу.
На следующем уроке мы создадим небольшой блог на языке Python.
Приятного кодинга!
Категория: Создание игр | Добавил: JackNazaryan (24 Мая 2014)
Просмотров: 4074 | Рейтинг: 5.0/3 |
Теги: браузерная игра, Python, онлайн, создать сайт, Веб-разработка, Web, браузерка, HTTP, браузерная, url
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создаем свой сайт/игру на Python. Часть 2», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Playir
  • Godot
  • Unigine
  • Ninfa3D
  • LinCity
  • Scratch
  • Platfinity
  • uranEngine
  • BuildBox
  • Future Pinball
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2018 Рейтинг