用tornado做網站(2)

2018-02-24 15:48 更新

既然擺好了一個網站的架勢,下面就可以向里面填內容。

連接數據庫

要做的網站,有數據庫支持,雖然這不是必須的,但是如果做一個功能強悍的網站,數據庫就是必須的了。

接下來的網站,我暫且采用mysql數據庫。

怎么連接mysql數據呢?其方法跟《mysql數據庫(1)》中的方法完全一致。為了簡單,我也不新建數據庫了,就利用已經有的那個數據庫。

在上一節(jié)中已經建立的文件夾methods中建立一個文件db.py,并且參考《mysql數據庫(1)》《mysql數據庫(2)》的內容,分別建立起連接對象和游標對象。代碼如下:

#!/usr/bin/env python
# coding=utf-8

import MySQLdb

conn = MySQLdb.connect(host="localhost", user="root", passwd="123123", db="qiwsirtest", port=3306, charset="utf8")    #連接對象

cur = conn.cursor()    #游標對象

用戶登錄

前端

很多網站上都看到用戶登錄功能,這里做一個簡單的登錄,其功能描述為:

當用戶輸入網址,呈現在眼前的是一個登錄界面。在用戶名和密碼兩個輸入框中分別輸入了正確的用戶名和密碼之后,點擊確定按鈕,登錄網站,顯示對該用戶的歡迎信息。

用圖示來說明,首先呈現下圖:

用戶點擊“登錄”按鈕,經過驗證是合法用戶之后,就呈現這樣的界面:

這里用的static_url是一個函數,它是tornado模板提供的一個函數。用這個函數,能夠制定靜態(tài)文件。之所以用它,而不是用上面的那種直接調用的方法,主要原因是如果某一天,將靜態(tài)文件目錄statics修改了,也就是不指定statics為靜態(tài)文件目錄了,定義別的目錄為靜態(tài)文件目錄。只需要在定義靜態(tài)文件目錄那里修改(定義靜態(tài)文件目錄的方法請參看上一節(jié)),而其它地方的代碼不需要修改。

編寫js

先寫一個測試性質的東西。

用編輯器打開statics/js/script.js文件,如果沒有就新建。輸入的代碼如下:

$(document).ready(function(){
    alert("good");
    $("#login").click(function(){
        var user = $("#username").val();
        var pwd = $("#password").val();
        alert("username: "+user);
    });
});

由于本教程不是專門講授javascript或者jquery,所以,在js代碼部分,只能一帶而過,不詳細解釋。

上面的代碼主要實現獲取表單中id值分別為username和password所輸入的值,alert函數的功能是把值以彈出菜單的方式顯示出來。

hanlers里面的程序

是否還記得在上一節(jié)中,在url.py文件中,做了這樣的設置:

from handlers.index import IndexHandler    #假設已經有了

url = [
    (r'/', IndexHandler),
]

現在就去把假設有了的那個文件建立起來,即在handlers里面建立index.py文件,并寫入如下代碼:

#!/usr/bin/env python
# coding=utf-8

import tornado.web

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index.html")

當訪問根目錄的時候(不論輸入localhost:8000,還是http://127.0.0.1:8000,或者網站域名),就將相應的請求交給了handlers目錄中的index.py文件中的IndexHandler類的get()方法來處理,它的處理結果是呈現index.html模板內容。

render()函數的功能在于向請求者反饋網頁模板,并且可以向模板中傳遞數值。關于傳遞數值的內容,在后面介紹。

上面的文件保存之后,回到handlers目錄中。因為這里面的文件要在別處被當做模塊引用,所以,需要在這里建立一個空文件,命名為__init__.py。這個文件非常重要。在編寫模塊一節(jié)中,介紹了引用模塊的方法。但是,那些方法有一個弊端,就是如果某個目錄中有多個文件,就顯得麻煩了。其實python已經想到這點了,于是就提供了__init__.py文件,只要在該目錄中加入了這個文件,該目錄中的其它.py文件就可以作為模塊被python引入了。

至此,一個帶有表單的tornado網站就建立起來了。讀者可以回到上一級目錄中,找到server.py文件,運行它:

$ python server.py
Development server is running at http://127.0.0.1:8000
Quit the server with Control-C

如果讀者在前面的學習中,跟我的操作完全一致,就會在shell中看到上面的結果。

打開瀏覽器,輸入http://localhost:8000或者http://127.0.0.1:8000,看到的應該是:

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號