W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
既然擺好了一個網(wǎng)站的架勢,下面就可以向里面填內(nèi)容。
要做的網(wǎng)站,有數(shù)據(jù)庫支持,雖然這不是必須的,但是如果做一個功能強悍的網(wǎng)站,數(shù)據(jù)庫就是必須的了。
接下來的網(wǎng)站,我暫且采用mysql數(shù)據(jù)庫。
怎么連接mysql數(shù)據(jù)呢?其方法跟《mysql數(shù)據(jù)庫(1)》中的方法完全一致。為了簡單,我也不新建數(shù)據(jù)庫了,就利用已經(jīng)有的那個數(shù)據(jù)庫。
在上一節(jié)中已經(jīng)建立的文件夾methods中建立一個文件db.py,并且參考《mysql數(shù)據(jù)庫(1)》和《mysql數(shù)據(jù)庫(2)》的內(nèi)容,分別建立起連接對象和游標對象。代碼如下:
#!/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() #游標對象
很多網(wǎng)站上都看到用戶登錄功能,這里做一個簡單的登錄,其功能描述為:
當用戶輸入網(wǎng)址,呈現(xiàn)在眼前的是一個登錄界面。在用戶名和密碼兩個輸入框中分別輸入了正確的用戶名和密碼之后,點擊確定按鈕,登錄網(wǎng)站,顯示對該用戶的歡迎信息。
用圖示來說明,首先呈現(xiàn)下圖:
用戶點擊“登錄”按鈕,經(jīng)過驗證是合法用戶之后,就呈現(xiàn)這樣的界面:
這里用的static_url是一個函數(shù),它是tornado模板提供的一個函數(shù)。用這個函數(shù),能夠制定靜態(tài)文件。之所以用它,而不是用上面的那種直接調(diào)用的方法,主要原因是如果某一天,將靜態(tài)文件目錄statics修改了,也就是不指定statics為靜態(tài)文件目錄了,定義別的目錄為靜態(tài)文件目錄。只需要在定義靜態(tài)文件目錄那里修改(定義靜態(tài)文件目錄的方法請參看上一節(jié)),而其它地方的代碼不需要修改。 先寫一個測試性質(zhì)的東西。 用編輯器打開statics/js/script.js文件,如果沒有就新建。輸入的代碼如下: 由于本教程不是專門講授javascript或者jquery,所以,在js代碼部分,只能一帶而過,不詳細解釋。 上面的代碼主要實現(xiàn)獲取表單中id值分別為username和password所輸入的值,alert函數(shù)的功能是把值以彈出菜單的方式顯示出來。 是否還記得在上一節(jié)中,在url.py文件中,做了這樣的設(shè)置: 現(xiàn)在就去把假設(shè)有了的那個文件建立起來,即在handlers里面建立index.py文件,并寫入如下代碼: 當訪問根目錄的時候(不論輸入 上面的文件保存之后,回到handlers目錄中。因為這里面的文件要在別處被當做模塊引用,所以,需要在這里建立一個空文件,命名為 至此,一個帶有表單的tornado網(wǎng)站就建立起來了。讀者可以回到上一級目錄中,找到server.py文件,運行它: 如果讀者在前面的學習中,跟我的操作完全一致,就會在shell中看到上面的結(jié)果。 打開瀏覽器,輸入編寫js
$(document).ready(function(){
alert("good");
$("#login").click(function(){
var user = $("#username").val();
var pwd = $("#password").val();
alert("username: "+user);
});
});
hanlers里面的程序
from handlers.index import IndexHandler #假設(shè)已經(jīng)有了
url = [
(r'/', IndexHandler),
]
#!/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
,或者網(wǎng)站域名),就將相應的請求交給了handlers目錄中的index.py文件中的IndexHandler類的get()方法來處理,它的處理結(jié)果是呈現(xiàn)index.html模板內(nèi)容。render()
函數(shù)的功能在于向請求者反饋網(wǎng)頁模板,并且可以向模板中傳遞數(shù)值。關(guān)于傳遞數(shù)值的內(nèi)容,在后面介紹。__init__.py
。這個文件非常重要。在編寫模塊一節(jié)中,介紹了引用模塊的方法。但是,那些方法有一個弊端,就是如果某個目錄中有多個文件,就顯得麻煩了。其實python已經(jīng)想到這點了,于是就提供了__init__.py
文件,只要在該目錄中加入了這個文件,該目錄中的其它.py文件就可以作為模塊被python引入了。$ python server.py
Development server is running at http://127.0.0.1:8000
Quit the server with Control-C
http://localhost:8000
或者http://127.0.0.1:8000
,看到的應該是:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: