

BottleのSimpleTemplateの中でdatetime.strftimeを使って、form内の値がpattern属性に指定されたパターンにmatchするようにしたいです

strftimeが実行された場合、`format_now`の値はformのpatternにマッチしたものになるはずです。  
しかし、実際にブラウザでアクセスすると、`図1`のように西暦と日付だけしか表示されません  
なぜなのでしょうか?

[code]

    import datetime
    import bottle
    
    jst = datetime.timezone(datetime.timedelta(hours=9), "JST")
    
    @bottle.route("/")
    def index():
        now = datetime.datetime.now(jst)
        return bottle.template("template.tpl", {"now": now})
    
[/code]

template.tpl:

[code]

    % format_now = now.strftime("%Y-%m-%d %I:%M:%S %p")
    
    <input type="text" pattern="\d{4}-\d{1,2}-\d{1,2} (1[0-2]|0[0-9]):[0-5][0-9]:[0-5][0-9] (PM|AM)?" name="now" value={{format_now}}>
    
[/code]

図1  
[![実際の結果](https://i.stack.imgur.com/ZUKon.png)](https://i.stack.imgur.com/ZUKon.png)


CC BY-SA 3.0
2016-08-08T13:30:41.490
28132
2016-10-22T16:50:37.677
2016-10-22T16:47:23.577
3054
5246
question
python bottle
SimpleTemplateで value={{format_now}} としても format_now の一部しか表示されません


`value`属性の値がクォートされていません。  
生成後のHTMLのソースを表示させると分かるかと思いますが、

[code]

    <input type="text" ... value=2016-08-08 11:14:20 PM>
    
[/code]

となってしまっているので、最初のスペースまでしか`value`の値と見なされず、年月日しか表示されません。  
`value="{{format_now}}"`とすれば良いです(クォーテーションで囲む)。


CC BY-SA 3.0
2016-10-22T16:50:37.677
29814
2016-10-22T16:50:37.677
3054
28132
answer