【從0開始Tornado建站】主頁的登入和顯示最新文章
阿新 • • 發佈:2019-02-17
登入只要放在主頁就可以了,這裡為了美觀,把<form>用bootstrap的form-inline類修飾,如下樣子:
前臺程式碼如下:
{%extends 'main.html'%} {%block header%} <ul class='nav nav-pills'> <li><a href='/' class='h4 text-primary'>首頁</a></li> <li><a href='/member' class='h4 text-primary'>成員</a></li> <li><a href='/chat/1' class='h4 text-primary'>群聊</a></li> {%if not cookieName%} <form action='/' method='post' class='form-inline'> <div class='form-group'> <label class='sr-only'>使用者名稱</label> <input type='text' name='username' class='form-control' placeholder='使用者名稱'/> </div> <div class='form-group'> <label class='sr-only'>密碼</label> <input type='password' name='password' class='form-control' placeholder='密碼'/> </div> <button type='submit' class='btn btn-success'>登入</button> <a href='/register'>無帳號,請點選註冊</a> </form> {%else%} <li><a href='/user/{{cookieName}}' class='h4 text-primary'>歡迎:{{cookieName}}</a></li> <li><a href='/logout' class='h4 text-primary'>登出</a></li> {%end%} </ul> {%end%} {%block content%} <ul> {%for i in blogs%} <li><a href='/user/{{i[1]}}' class='text-success h4'>【{{i[1]}}】</a><a href='/blog/{{i[0]}}' class='text-primary h3'>{{i[2]}}</a></p><p class='text-muted h6'>{{i[3]}}</p></li> <br/> {%end%} </ul> {%end%}
後臺程式碼如下:
class indexHandler(tornado.web.RequestHandler): def get(self): name=self.get_cookie('hackerName') blogs=showAllBlog() self.render('index.html',cookieName=name,blogs=blogs) def post(self): name=self.get_argument('username') pw=self.get_argument('password') res=check(name,pw) if res: #密碼正確 self.set_cookie('hackerName',name) else: #密碼錯誤 pass self.redirect('/')
showAllBlog函式是顯示所有使用者發表了的文章,定義如下:
def showAllBlog():
c.execute('select id,name,title,time from blog')
tmp=c.fetchall()
return tmp[::-1]
按照發表時間排序,就是逆序輸出。資料庫blog表格定義如下:
CREATE TABLE blog(id integer primary key,name text,title text,blog text,time text);
這樣每個人發表的最新文章都會在主頁顯示,登入成功後主頁顯示如下:
點選使用者名稱可以進入該使用者的主頁。