Распечатать новую строку в Google App Engine - PullRequest
4 голосов
/ 04 февраля 2011
self.response.out.write("\n")

Когда я загружаю данные многострочного текста, используя свойство text, а затем распечатываю их обратно, он печатается в одну строку я загружаю код ASCII hexa .... поэтому возврат каретки равен 0x10, но при выводе в ascii из хранилища данных новая строка не вставляется ... вместо этого он печатает в виде одной строки

import cgi
#import codecs
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db

import operator

class Vault(db.Model):
    username=db.StringProperty()
    filename=db.StringProperty()
    data=db.TextProperty()

op=""
op1=""
username=""
filename=""


class MainPage(webapp.RequestHandler):
    def get(self):
        stri=""
        global username
        global filename
        stri=""
        username = self.request.get("name")
        filename=self.request.get("filename")
        mac=self.request.get("mac")
        mac=mac.replace(':','')
        q=db.GqlQuery("SELECT * FROM Vault WHERE filename=:1",filename)
        for vault in q:
            stri=cgi.escape(vault.data)
        s=0
        e=12
        cycle=len(stri)/12
        z=""
        for j in range(cycle):
            plain=stri[s:e]
            #print plain
            s1=0
            s2=2
            for i in range(6):
                x=int(plain[s1:s2],16)
                y=int(mac[s1:s2],16)
                s1=s1+2
                s2=s2+2
                z+=chr(operator.xor(x,y))
            mac=plain
            s=s+12
            e=e+12
        print z

application = webapp.WSGIApplication([('/dec', MainPage)],debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

Ответы [ 2 ]

9 голосов
/ 04 февраля 2011

Где вы печатаете эти данные обратно? Если он находится внутри HTML (ну, если он не окружен тегами <pre>), новые строки будут игнорироваться независимо от того, обозначен ли EOL \n или \r\n.

Если это то, что происходит, вы можете просто сделать

self.response.out.write(myString.replace("\n", "<br />"))
3 голосов
/ 04 февраля 2011

В вашем веб-браузере попробуйте просмотреть результат, используя «Просмотр источника страницы».

Если разрывы строк выглядят правильно, то @bgporter найдет правильное решение.

...