0

我有一个 python 脚本在我的本地主机上运行良好。它不是企业应用程序或任何东西,只是我正在玩的东西。它使用“瓶子”库。该应用程序基本上使用一个 XML 文件(存储在本地或在线),其中包含具有自己唯一 ID 的元素以及一些坐标,例如 mysite.com/23 将带回元素 23 的纬度/经度。我确定无论如何,在这个阶段你们都熟悉 REST。

现在,我想把它放到网上,但是找不到支持“瓶子”的主机。但是,我找到了一个安装了 django 的主机。

所以,我的问题是,将以下代码从瓶子转换为 django 有多难?有人可以给我一些指示吗?我尝试使用常见的 python 库。

谢谢。

from xml.dom.minidom import parseString
from bottle import route, run
import xml
import urllib

file = open('myfile.xml','r')
data = file.read()
dom = parseString(data)
@route('/:number')
def index(number="1"):
    rows = dom.getElementsByTagName("card")[0].getElementsByTagName("markers")[0].getElementsByTagName("marker")
    for row in rows:
        if row.getAttribute("number") == str(number):
             return str(xml.dumps({'long': row.getAttribute("lng"), 'lat': row.getAttribute("lat")}, sort_keys=True, indent=4))
    return "Not Found"


run(host='localhost', port=8080)
4

1 回答 1

1

我把你的问题当作了解更多关于 Django 的机会。我使用The Django Book作为参考。

从一个空的 Django 站点 ( django-admin.py startproject testsite) 开始,我已更改urls.py为:

from django.conf.urls.defaults import patterns, include, url
from testsite.views import index

urlpatterns = patterns('',
    url(r'^(\d+)$', index),
)

views.py对此:

from django.http import HttpResponse
from xml.dom.minidom import parseString
import xml
import urllib

def index(request, number):
    data = open('myfile.xml', 'r').read()
    dom = parseString(data)
    rows = (dom.getElementsByTagName("card")[0]
               .getElementsByTagName("markers")[0]
               .getElementsByTagName("marker"))

    for row in rows:
        if row.getAttribute("number") == str(number):
             return HttpResponse(str(xml.dumps({'long': row.getAttribute("lng"), 
                    'lat': row.getAttribute("lat")}, sort_keys=True, indent=4)))
    return HttpResponse("Not Found")

警告:我没有测试过 XML 代码,只有与 Django 相关的代码,我通过python manage.py runserver.

Django Book 包含很多信息,包括如何在生产服务器上部署它。

于 2011-12-07T22:03:51.813 回答