テンプレートの竜巻で

テンプレートの竜巻で

import random
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, parse_config_file, options
from tornado.web import Application, RequestHandler

define('port', type=int, default=8888, multiple=False)
parse_config_file('config')

class IndexHandler(RequestHandler):
    def get(self, *args, **kwargs):
    	msg = ''
        if self.get_arguments('msg'):
            msg = '用户名密码错误'
        self.render('login.html', result=msg)  # 返回模板内容

class NewHandler(RequestHandler):
	def myrand(self, a, b):
        return random.randint(a, b)

    def post(self, *args, **kwargs):
        uname = self.get_arguments('uname')[0]
        upwd = self.get_arguments('upwd')[0]
        if uname == 'abc' and upwd == '123':
            self.render('new.html', 
            			num1=100, 
            			num2=200, 
            			myrand=self.myrand,
            			new_list=[{'title':'新闻第一线',
                                   'tag':['新闻','新型冠状病毒'],
                                   'contents':'新闻全部内容'},
                                  {'title': '新闻时刻',
                                   'tag': ['新闻', '科比逝世'],
                                   'contents': '新闻全部内容'},
                                  ])
        else:
            self.redirect('/?msg=false')


url_list = [('/', IndexHandler),
            ('/new', NewHandler)]

app = Application(url_list, template_path='F:/mytornado/mytemplates') # 指定模板所在的文件夹
server = HTTPServer(app)
server.listen(options.port)
IOLoop.current().start()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
    <form method="post" action="/new">
        <p>用户名:<input type="text" name="uname"></p>
        <p>密码:<input type="password" name="upwd"></p>
        <p><input type="submit" value="登陆"></p>
    </form>
    <p>{{ result }}</p>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>New</title>
</head>
<body>
{% for new in new_list %}
<table border="1px" cellpadding="5px" width="100%">
    <tr><td rowspan="4" align="center" width="100px">
		<table>
		    <tr><td><img width="128px" hight="128px" src="***.jpg" align="center"></td></tr>
		    <tr><td align="center"><p style="width: 100px; border: 1px solid yellowgreen; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">python小子</p></td></tr>
		 </table></td>
		 <td>{{ new['title'] }}</td>
    </tr>
    <tr><td>{{ ' '.join(new['tag']) }}</td></tr> <!-- 分割列表 -->
    <tr><td style="min-height: 150px; display: block">{{ new['contents'] }}</td></tr>
    <tr><td align="right">点赞数:{{ num1 }};评论数:{{ num2 }};阅读数:{{ num1 + num2 }};转发数:{{ myrand(50,100) }}</td></tr> <!-- num1和num2为变量,myrand为自定义函数,随机选取50至100之间的整数 -->
</table> 
{% end %}
  • 説明
    • ユーザー名とパスワードが間違っている1、パラメータMSG、MSGのパラメータを持つ帰国は価値判断、迅速なユーザー名とパスワードエラーを持っています
    • 2、IFまたは場合ライト{%端%}、書き込みまたは{%ENDIF%} {%ENDFOR%}に必要に必要、テンプレート内のステートメントに使用
    • 3、組み込み関数とカスタムテンプレート機能pythonで直接使用することができます
    • 4「」.join(リスト):セグメント要素がリスト内に直接であってもよいです
公開された75元の記事 87ウォンの賞賛 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_43883022/article/details/104232474