2017-09-13 11 views
0

web2pyのRESTfulなサービスを使用して、私は次のHTMLは、このリンク(http://127.0.0.1:8000/app/default/api/example_data.html_table/?limit=1)に移動した後、ブラウザでレンダリングしたいと思います:web2py RESTFULサービスからカスタム汎用ビューを作成するにはどうすればよいですか?

<div><table><thead><tr><th>example_data.id</th><th>example_data.Firstname</th><th>example_data.Lastname</th><th>example_data.Age</th></tr></thead><tbody><tr class="w2p_odd odd"><td>1</td><td>SUUUUPPPEEEERRRR LONGGGGG FIRSTTTT NAMEEEE</td><td>Smith</td><td>1</td></tr></tbody></table></div> 

はしかし、私は現在、次の受信:

<div><table><thead><tr><th>example_data.id</th><th>example_data.Firstname</th><th>example_data.Lastname</th><th>example_data.Age</th></tr></thead><tbody><tr class="w2p_odd odd"><td>1</td><td>SUUUUPPPEEEER...</td><td>Smith</td><td>1</td></tr></tbody></table></div> 

違いは、Web2Pyが "SUUUUPPPERSERRRR LONGGGGG FIRSTTTT NAMEEEE"を "SUUUUPPPEEEER ..."に短縮していますが、テキスト全体が必要です

これを生成するgeneric.html_tableと呼ばれるMy Viewは、次

{{=response._vars[next(iter(response._vars))]}} 

結果(最初の名前はまだカットオフ):

{{=BEAUTIFY(response._vars[next(iter(response._vars))])}} 

コントローラ

@request.restful() 
def api(): 
    response.view = 'generic.' + request.extension 
    def GET(*args,**vars): 
     patterns = 'auto' 
     parser = db.parse_as_rest(patterns,args,vars) 
     return dict(content=parser.response) 
    def POST(table_name,**vars): 
     if 'id' in vars.keys(): 
      return db[table_name].update_or_insert(db[table_name]._id == vars['id'],**vars) 
     else: 
      return db[table_name].validate_and_insert(**vars) 
    def PUT(table_name,**vars): 
     record_id = vars['id'] 
     return db(db[table_name]._id==record_id).update(**vars) 
    def DELETE(table_name,record_id): 
     return db(db[table_name]._id==record_id).delete() 
    return dict(GET=GET, POST=POST, PUT=PUT, DELETE=DELETE) 

MODEL

db.define_table('example_data', Field('Firstname', 'string'),Field('Lastname', 'string'),Field('Age', 'integer')) 

は、私はまた、次のビューを試してみました:

{{=XML(response._vars[next(iter(response._vars))])}} 

結果(すべてのHTMLフォーマットをロスト):

example_data.id、example_data.Firstname、example_data.Lastname、example_data.Age

<table><thead><tr><th>example_data.id</th><th>example_data.Firstname</th><th>example_data.Lastname</th><th>example_data.Age</th></tr></thead><tbody><tr class="w2p_odd odd"><td>1</td><td>Jill</td><td>Smith</td><td>1</td></tr><tr class="w2p_even even"><td>2</td><td>Eve</td><td>Jackson</td><td>33</td></tr><tr class="w2p_odd odd"><td>3</td><td>afdaskfdlasjf...</td><td>Jackson</td><td>33</td></tr><tr class="w2p_even even"><td>4</td><td>SUUUUPPPEEEER...</td><td>Jackson</td><td>33</td></tr></tbody></table> 
は、私はまた、次のビューを試してみました1、ジル、スミス、1 2、イブ、ジャクソン、33 3、afdaskfdlasjfkdlsjfklajdfskasjfklsdajfdklsajfklsajfdskalfdjsakldfjklasfjkdlsajfdsakljdklsadcjklasjcklsjackldsjakfldajsfklasdfjklasjfdklajfdsklsjafkldasjfkldasjkldsjcklajsckljackldajsdfklfjkalsncklacnkalsdfjkldasn ckldasjckljsdaklfdnfkldsajfdklasjldsk、ジャクソン、33 4、SUUUUPPPEEEERRRR LONGGGGG FIRSTTTT NAMEEEE、ジャクソン、33

答えて

0

これらの方法のすべては、最終的にビューにレンダリングするためSQLTABLEに渡されるDAL Rowsオブジェクトをもたらします。既定では、フィールドは16文字に切り捨てられます。変更する場合は、SQLTABLEと明示的に電話する必要があります:

{{=SQLTABLE(content, truncate=100)}} 
関連する問題