9.Tornado下的一个简易Blog--2013-05-21
2019獨角獸企業重金招聘Python工程師標準>>>
??? 前面配置過了VirtualENV,Tornado及MySQL,現在馬上開始練習一些簡單的應用了,先從建立Blog。吐一下槽,昨天OSC又抽瘋了,我第八節是辛辛苦苦用精力最多的一篇,來回修改10來次。最后發現,從7到10的都沒給保存!!!尼瑪!
1.創建數據庫與表
create database blog;use blog;創建一個blog表,有4個字段,一個自增的id作為主鍵,一個char類型title,一個varchar類型context,一個date類型postdate。
char的總結:
????? char最大長度是255字符,注意是字符數和字符集沒關系。可以有默認值,尾部有空格會被截斷。
varchar的總結:
??????varchar的最大長度65535是指能存儲的字節數,其實最多只能存儲65532個字節,還有3個字節用于存儲長度。注意是字節數這個和字符集有關系。一個漢字字符用utf8占用3字節,用gbk占用2字節。可以有默認值,尾部有空格不會截斷。
text的總結:
????? text和varchar基本相同。text會忽略指定的大小這和varchar有所不同,text不能有默認值。尾部有空格不會被截斷。text使用額 外的2個字節來存儲數據的大小,varchar根據存儲數據的大小選擇用幾個字節來存儲。text的65535字節全部用來存儲數據,varchar則會 占用1-3個字節去存儲數據大小。
上面所說的一切只針對mysql,其他數據庫可能不同。有不妥的地方請指出。
2.插入數據
insert into blog values('','title','context','postdate'); 詳細內容如下:
3.讀取數據
select * from blog;
4.下載torndb
??? tornado從3.0開始把database模塊分出來了,單獨一個模塊取名叫torndb.詳細源碼可參考https://github.com/bdarnell/torndb.
????cd到virtualenv目錄,
# source bin/activate # pip install torndbok,已經成功安裝了。
5.安裝Gnome
??? 為了方便在圖形界面中看到Blog效果,安裝Gnome。
5.1、安裝Gnome
查一下,在grouplist的輸出結果中的“Installed Groups:”部分中,如果你能找到“X Window System”和“GNOME Desktop Environment或KDE (K Desktop Environment)或XFCE-4.4”的話,證明你安裝了桌面環境。沒找到的話執行下面命令安裝。
# yum grouplist |more # yum groupinstall?"X?Window?System" # yum?groupinstall?"Desktop" # startxstartx啟動
如果無法啟動,并且屏幕停住不動,不出現“#或$” 提示符,
就按鍵盤上的“Alt + F1或F2或F3……”切換虛擬終端登入到系統,進入錯誤排除。比如分辨率的設置,顯示器設置等(# setup中的“X configuration”項)。
或根去系統提示的信息,進行排錯。如:刪除/tmp下的關于.X*信息等。
5.2、卸載Gnome
以后不需要卸載時
# yum groupmove "Desktope"
6.安裝增強工具
??? 當你裝了Gnome是不是發現了···O(∩_∩)O哈哈~我就知道,不用抱怨了,這個鼠標在兩個系統窗口間切換是很煩,還要每次按CTL鍵,最可恥的是每次回去鼠標位置還不對。不過你現在有救了O(∩_∩)O·
參考下面的來吧
6.1、啟動安裝在 VirtualBox 中的 CentOS 5.5 虛擬機
點擊“設備” => “安裝增強功能”。這個時候你就可以看到有一個“光盤”已經掛載到 CentOS 5.5 的桌面上了。它包含了安裝 VirtualBox 客戶端增強功能的組件。
注意:通常情況下我們直接運行掛載到系統中的 VirtualBox 客戶端增強功能的組件就可以了,不過 CentOS 需要配置一下,如果你直接安裝就會出現下面的錯誤。 Bulding the VirtualBox Guest Additions Kernel modules failed Your system does not seem to be set up to build kernel modules. Look at /var/log/vboxadd-install.log to find out what went worg. Once you have corrected it,you run /etc/init.d/vboxadd setup to build them6.2、你需要安裝編譯內核的相關組件
yum install ?gcc ???kernel-devel? ?kernel-headers6.3、安裝 VirtualBox 客戶端增強功能工具
選擇和你的系統一致的 VirtualBox 客戶端增強功能工具來安裝,其中 VBoxLinuxAdditions-x86.run 適用于是32系統的,VBoxLinuxAdditions-amd64.run 是用于64位系統的。 執行以下命令來安裝sh ./VBoxLinuxAdditions.run
6.4、安裝成功后重啟系統
ok,現在你自由了,隨意馳騁吧··復制粘貼都無所謂。
6.5、附以下參考:
?設置共享文件夾,需首先安裝增強工具包,如下圖所示。
?
以下詳細介紹安裝增強工具包的步驟。
點擊【設備】菜單下的【安裝增強工具】。
?
桌面出現一個光盤文件,同時出現如下界面,點擊【OK】,如下圖所示。
?
?出現如下界面,點擊【RUN】。
?
安裝增強工具包必須在Root賬號下,可以切換到Root賬戶下,或者在此輸入Root密碼,點擊【Authenticate】,如下圖所示。
?
出現如下界面。
?
主要原因是Kernel庫找不到。
安裝增強工具包需要安裝kernel包和gcc編譯包。
按照下圖,在桌面右鍵,打開終端。
?
輸入如下命令,查看日志文件,出現界面如圖所示。?
Linux代碼 ?? 輸入“Y”,開始下載文件,如下所示。 下載完畢,輸入【Y】,回車,開始安裝。 安裝完成,如下所示,出現“Complete”字樣 現在安裝gcc包。 輸入如下命令。 Linux代碼 ?
有時需要 yum install kernel-devel yum install gcc-c++ 重啟reboot之后 即可安裝成功! 附: kernel簡介 Kernel 操作系統內核 操作系統內核是指大多數操作系統的核心部分。它由操作系統中用于管理存儲器、文件、外設和系統資源的那些部分組成。操作系統內核通常運行進程,并提供進程間的通信。 參考地址:http://baike.baidu.com/view/401155.htm gcc簡介: GCC(GNU Compiler Collection,GNU編譯器集合)是一套由GNU工程開發的支持多種編程語言的編譯器。GCC是自由軟件發展過程中的著名例子,由自由軟件基金會 以GPL協議發布。GCC是大多數類Unix操作系統(如Linux、BSD、Mac OS X等)的標準的編譯器,GCC同樣適用于微軟的Windows。GCC支持多種計算機體系芯片,如x86、ARM,并已移植到其他多種硬件平臺。GCC原 名為GNU C編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,并支持處理C++。后來又擴展能夠支持更多編程語言,如Fortran、 Pascal、Objective-C、Java、Ada、Go等。
參考地址:http://baike.baidu.com/view/4848.htm
6.6、幾個小設置
??? 是不是發現打開文件夾的時候一連打開一堆???說實在的真不習慣,還有沒有前進后退上翻,不過這也是可以設置的。打開一個文件夾,Edit--preferences--behavior,選擇open in browser windows。
這樣,雙擊打開文件夾窗口的模樣就與之前大不相同了。久違的前進/后退/向上按鈕出現了,而且還可以通過點擊上方的一個按鈕,切換路徑的顯示模式。這樣看起來舒服多了,真想不明白為什么不將這個作為默認的打開方式。
7.激活虛擬環境
??? 參考第4步。
# source bin/activate7.1 、風險說明
其實用root直接登錄圖形界面是有風險的,不推薦用root。可以創建個新用戶,因為root權限太大,搞了誤操作,很容易導致系統崩潰。
7.2、設置Terminal快捷鍵
我的是CentOS6.4,其他版本應該有差別,但是類似。
System-Preferences-Keyboard,打開后
設置為SHIFT+S,按一下,果然打開了。
Edit-Keyboards Shorcuts,設置為Shift+Ctrl+Q退出,當然直接鼠標關掉不也很爽?····O(∩_∩)O哈哈~
8.主機與虛擬機文件共享
??? 很不好意思的說,我是在windows下搞得Vbox,所以為了方便調試程序,需要搞個方便的傳輸程序文件的辦法。SSH,FTP都可以,但是應該還是沒有共享文件夾方便。
8.1、SSH連接
裝好VirtualBox后,在XP下進入網絡鄰居,多了個VirtualBox Host-Only Network。可知:
8.1.1、Host機的IP
Host機的IP:192.168.56.1
8.1.2、虛擬機的IP
在CentOS查看虛擬機的IP:
ifconfig -a #查看IP eth0 Link encap:Ethernet HWaddr 08:00:27:BE:80:A6inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0inet6 addr: fe80::a00:27ff:febe:80a6/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:172 errors:0 dropped:0 overruns:0 frame:0TX packets:119 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:15640 (15.2 KiB) TX bytes:21109 (20.6 KiB)lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)8.1.3、映射虛擬機和Host機的端口(用SSH登陸Centos)
虛擬機的IP是10.0.2.15,自動獲取的IP。接下來打開??VirtualBox,按下圖設置:
SSH的默認端口是22,填好HostIP及GuestIP就行了。這樣子就能通過putty等軟件SSH登陸了。
SSH IP: ?192.168.65.1
帳號:CentOS設置的帳號,如root
web的80端口是為以后安裝apache用的。設置了這個后,Host機才能用http://IP/通過瀏覽器直接訪問。(還需要設置CentOS的防火墻不屏蔽80端口。以后再詳~)
8.1.4、CentOS yum鏡像
設置yum的鏡像,方便下載更新軟件。設置的方法參照:http://centos.ustc.edu.cn/
?
安裝地方設置為HTTP,Server ctos.ustc.edu.cn, 目錄 為centos/6/os/i386 或?centos/6/os/x86_64。
安裝后請按照以下步驟修改CenOS-Base.repo,以后就可以方便的用yum從本鏡像站點安裝、更新軟件。
8.1.5、 CentOS6的安裝方法
cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.save wget http://ctos.ustc.edu.cn/CentOS-Base.repo.6 wget http://ctos.ustc.edu.cn/epel.repo.6 mv CentOS-Base.repo.6 CentOS-Base.repo mv epel.repo.6 epel.repo?
提醒:裝了centos的最小版本minimal之后,一開始沒有安裝wget了,所以就是需要配置SSH后,就能隨便上傳文件了。
8.2、設置共享文件夾
8.2.1、創建共享文件夾
VirtualBox的菜單點擊"設備(Devices)" -> 共享文件夾(Shared Folders)菜單,添加一個共享文件夾,選項固定和臨時是指該文件夾是否是持久的。盡量使用英文名稱。我這里用python-m2miot.
我把E盤的python文件夾作為共享文件夾,命名為python-m2miot。
8.2.2、掛載共享文件夾
重新進入虛擬CentOs6.4,在命令行終端下輸入:
# mkdir /mnt/share
# mount -t vboxsf python-m2miot /mnt/share
如果提示 /sbin/mount.vboxsf: mounting failed with the error: No such device
可能是沒有載入內核模塊 vboxfs ,先查看下:
#lsmod | grep vboxsf
如果沒有結果返回,說明 vboxsf沒有載入,執行
#sudo modprobe vboxsf
正常的話mount -t vboxsf python-m2miot /mnt/share共享文件夾應該可以訪問了
#cd /mnt/share
#ls -al
已經可以把host上的python文件夾都讀到了,我centos裝的英文版,中文顯示亂碼,不鳥他。
8.2.3、自動掛載
假如您不想每一次都手動掛載,可以在/etc/fstab中添加一項
share /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
這樣就能夠自動掛載了。
本人這樣做了,但是每次啟動都掛接不上,因此使用以下方法,在系統啟動時執行掛接腳本,成功自動掛接
#vi /etc/rc.d/rc.local
在文件的最后加入上面手動掛接的命令,比如:
mount -t vboxsf python-m2miot /mnt/share
8.2.4、取消掛載
#sudo umount -f /mnt/shared
注意:共享文件夾的名稱千萬不要和掛載點的名稱相 同(這一點我并未實驗,不過也無必要)。比如,上面的掛載點是/mnt/share,如果共享文件夾的名字也是share的話,在掛載的時候就會出現如下 的錯誤信息(http://www.virtualbox.org/ticket/2265):
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
原因分析可以看Tips on running Sun Virtualbox的Shared Folder on a Linux Guest節。
9.Tornado 之“Hello World!”例子
??? 我們前面做了這么多準備工作,終于開始到實例了。從共享文件夾復制個tornado的helloworld例子,放到我們virtualenv目錄下,就是m2miot中。
# python helloworld.py 咦?在虛擬機上能正常訪問看到結果,但是主機上訪問不行呢?互相ping了下都通的啊,然后都分別能訪問互聯網。9.1、查看centos防火墻
??? 考慮到上面問題排除下其他可能,只有防火墻沒看了。
# service iptables status果然是這小子!!!只有開放了個22端口給SSH用的。
9.2、配置網絡防火墻
??? 依照22那個端口依葫蘆畫瓢,復制粘貼2個到下面,yy p,vi的操作命令google下。把8888,3306插進去。
如下
# vi /etc/sysconfig/iptables
9.3、重啟防火墻
# service ipstables restart
9.4、再次訪問
用主機再訪問下192.168.1.120:8888
正常了!!!!
轉載于:https://my.oschina.net/quanpower/blog/132294
總結
以上是生活随笔為你收集整理的9.Tornado下的一个简易Blog--2013-05-21的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Grunt 入门指南5:项目脚手架
- 下一篇: 遍历输入图的遍历