Python JQuery веб-игра

Я пытаюсь разработать веб-стратегию для текстовой игры. Идея состоит в том, чтобы находиться в космосе, видеть экран радара и двигаться, атаковать других игроков, добывать планеты и так далее.

Текущие технологии, которые я пробовал:

  • Python для серверного игрового движка / запросов к базе данных
  • Mongodb для размещения базы данных
  • Web.py для обслуживания веб-страниц.
  • Jquery для интерфейса на сайте.
  • HTML5 W / canvas для отображения радара, который будет простым запросом того, что находится рядом с моей текущей позицией.

Текущая стадия разработки:

Python:

Я написал текстовую командную игру, в которой рассказывается о сканировании и перемещении объектов игрока по базе данных.

MongoDB:

База данных настроена и работает отлично. Я могу манипулировать объектами и объектами запросов.

web.py:

В настоящее время поддерживает 'localhost:8080('/', '/register', '/game'). Когда вы приедете, у него будет очень простое поле входа в систему, которое не использует никакой реальной аутентификации, но простой db.users.find({}) для проверить пользователя. Я расскажу об этом позже, но для простого тестирования с друзьями я пока не слишком беспокоился о безопасности. Если они вводят неправильные значения, он переходит на / зарегистрируйтесь, где они могут создать учетную запись. Затем он помещает их в / game, где я могу извлечь имя пользователя из формы ('name') и вывести простое имя Hello %.

Jquery:

Умеет выполнять скрипты jquery для манипулирования div-ами, а что нет.

HTML5:

Реального развития пока нет, но HTML - моя сильная сторона, поэтому я пока не беспокоюсь об этом.

проблемы:

Реальный дорожный блок, на который я натолкнулся, - это попытаться выяснить, как передать пользователю *.html-страницу с помощью jquery post'ing для моих серверных скриптов python, чтобы выполнять запросы или обновления базы данных или выполнять некоторый код для сражений и что не.

Я читал о различных технологиях и инфраструктурах, но на самом деле я не нашел ничего, что соответствовало бы именно тому, что мне нужно, или отсутствие опыта не позволяет мне понять, как его реализовать.

Мне интересно, есть ли простой способ написать jquery(post), который будет публиковать данные в python, чтобы написанные мной функции могли выполнять запросы или обновления на основе jquery(post) и возвращать данные, запрашиваемые пользователем

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

Ребята, можете ли вы указать мне правильное направление? Нужно ли мне удалять web.py и переключаться на ajax и mod_python?

Должен ли я просто встать на дыбы и внимательно прочитать документацию django?

В эти выходные я буду работать в очень медленном интернете и надеялся, что смогу найти правильное направление, чтобы вернуться, поэтому, когда я вернусь в свое место в субботу, я смогу начать работу над веб-частью стратегической игры.

примеры кода:

Скрипт web.py:

import web
from web import form
import pymongo

db = pymongo.Connection('localhost', 27017).bbarnes_test
render = web.template.render('templates/')
urls = (
  '/', 'index',
  '/register', 'register',
  '/game', 'game')

app = web.application(urls, globals(), True)

login = form.Form(
    form.Textbox("Username",
                form.notnull),
    form.Password("Password",
        form.notnull))


class index:
    def GET(self):
        form = login()
        return render.formtest(form)

    def POST(self):
        form = login()
        if not form.validates():
            return render.formtest(form)
        else:
                        uname = db.users.find_one({'name' : form.d.Username, 'pw' : form.d.Password})

                        if uname != None:
                                return render.game(uname['name'])
                        else:
                                raise web.seeother('/register')

class register:
        def GET(self):
                form = login()
                return render.register(form)

        def POST(self):
                form = login()
                if not form.validates():
                        return render.register(form)
                else:
                        db.users.insert({'name' : form.d.Username, 'pw' : form.d.Password})
                uname = db.users.find_one({'name' : form.d.Username})
                raise web.seeother('/')


class game:
        def GET(self):
                return render.game(form)

if __name__=="__main__":
    web.internalerror = web.debugerror
    app.run()
~

game.html

$def with(uname)
<html>
<!DOCTYPE html>
<head>
<script type="text/javascript" src="../static/jquery.js"></script>
<script type="text/javascript">
J = jQuery;
J(document).ready(function(){
        J("p").click(function(){
                J(this).hide();
        });
});



</script>

<title>The Game</title>
</head


<body>
<p> This is a test of jQuery.</p>
<p> Welcome to the game $uname</p>

</body>

</html>

1 ответ

Решение

Вы думаете об этом неправильно, если вы думаете, что ваши скрипты Python отделены от вашей веб-инфраструктуры. Когда вы говорите о выполнении HTTP-вызовов, таких как POST, к веб-приложению для манипулирования данными в базе данных - это веб-сервис. Большая часть моего опыта связана с Pyramid + Cornice и Django + Piston (тьфу), но web.py вполне способен и должен уметь это делать. Этот пост старый, но выглядит многообещающе. Вам также больше повезет с поиском "RESTful web services python" или чего-то подобного.

Другие вопросы по тегам