9.Tornado下的一个简易Blog--2013-05-21

    前面配置过了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 torndb

ok,已经成功安装了。

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" # startx

startx启动

如果无法启动,并且屏幕停住不动,不出现“#或$” 提示符,

就按键盘上的“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 them
 

6.2、你需要安装编译内核的相关组件

yum install  gcc    kernel-devel   kernel-headers
 

6.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代码   收藏代码
  1. cat /var/log/vboxadd-install.log  
 
现在安装kernel内核开发包和gcc编译包。
输入如下命令:
Linux代码   收藏代码
  1. yum install kernel  
 出现界面如图所示。

 
输入“Y”,开始下载文件,如下所示。
 
下载完毕,输入【Y】,回车,开始安装。
 
安装完成,如下所示,出现“Complete”字样
 
现在安装gcc包。
输入如下命令。
Linux代码   收藏代码
  1. yum install gcc  
如下所示。
 
输入“Y”,开始下载。
 
安装完毕,如图所示。
 
重启服务器。
 
再重新安装增强工具包,点击桌面的光盘文件,右键,点击【Open with autorun prompt】,开始运行,出现如下界面,表示安装成功。


 
有时需要
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/activate

7.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:A6
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:febe:80a6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:172 errors:0 dropped:0 overruns:0 frame:0
          TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15640 (15.2 KiB)  TX bytes:21109 (20.6 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值