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 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: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相关推荐

  1. Linux系统编程下做一个简易的shell

    自主实现一个shell--------minshell shell:命令行解释器-------解释执行用户的输入(完成相对应的功能) 步骤 1. 获取标准输入中的字符串 2. 对字符串进行解析[ls ...

  2. rails官方指南--建一个简易博客

    写这篇博客的原因是国科大高级软件工程(罗老师的课)需要用ruby on rails,在rails入门时,rails官方指南(建一个简易博客)的英文读着吃力所以想一边翻译该指南,一边学习,中间因为有考试 ...

  3. 【Linux】用进程控制知识做一个简易版shell

    文章目录 什么是shell 图示 分析 代码 什么是shell shell是命令行解释器的统称 当前使用的shell的名字是bash,bash其实也是一个程序 当前我使用的是centos7下实现一个简 ...

  4. 2013.5.21号面试心得

    今天一大早跑去丁字桥面试早上8点20左右到的 用百度地图找到位置不到9点 这个公司9点上班 在楼下等到了9.17上去了 一去先做一份逻辑题,一看傻眼了 和以前备考公务员的题目一样 我靠 然后是一份.N ...

  5. Linux下brk、sbrk实现一个简易版本的malloc

    目录 一.内存四区回顾 二.brk.sbrk 三.使用brk.sbrk模拟实现malloc和free 一.内存四区回顾 程序代码区:该区域在程序运行时存放程序的二进制代码. 全局数据区:该区域主要存放 ...

  6. 一个简易的下拉刷新松耦合实践

    前言 在iOS平台,许多App的下拉刷新都是使用的MJRefresh这个开源库,笔者所接触开发过的几个App就是这样.当然还有很多效果酷炫的下拉刷新,真是不得不佩服开源界大神们的创意!这里是一些厉害框 ...

  7. 连夜撸了一个简易聊天室

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 分不清轮询.长轮询?不知道什么时候该用websocket还 ...

  8. php模拟一个简易的mvc模型

    mvc是生么? mvc是软件设计的一种结构(即模型.视图.控制器) 本篇文章会通过一个简易的webapp来介绍mvc,目录结构如下: mvcDemo     index.php     modules ...

  9. 撸一个简易聊天室,不信你学不会实时消息推送(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 分不清轮询.长轮询? ...

最新文章

  1. string比较字符串某个指定的字符串
  2. Visual C#实现HTTP代理服务程序
  3. c语言 两条线段位置,C++/STL实现判断平面内两条线段的位置关系代码示例
  4. php amp 26472,汉字与UNICODE的转换 通过文件操作
  5. JavaEE系统架构师学习路线
  6. 使用python往数据库中添加数据
  7. 初学java,有哪些值得推荐的 Java 练手项目?
  8. 原理图端口符号_电气的原理图和接线图的区别,今天终于弄明白了!
  9. 如何压缩图片大小?这几种图片压缩方法总有一款适合你
  10. 微软雅黑和consolas混合字体_未经授权使用“微软雅黑”,赔垮一家公司?方正辟谣了,但这事还是很危险...
  11. centos设置静态IP地址
  12. Mac系统环境变量配置和说明【实用版】
  13. 个人站长利用免费cloudflare对抗DDoS实战
  14. 超全面详细的身份证号码编码原理,拿走不谢!
  15. 用C语言写的学生管理系统,C语言实现简单的学生成绩管理系统
  16. 最新gcc下载和linux环境变量设置
  17. 智能android电视更换播放器,GitHub - xioxu/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
  18. 将矩阵逐步化简至行最简形并求秩
  19. 基于SpringBoot满天星幼儿园管理系统
  20. akka 文章 博客

热门文章

  1. 分布式消息系统Kafka初步
  2. ant基本标签 及import properties
  3. 铁幕(Iron Curtain)
  4. Oracle 中使用 fetch bulk collect into 批量效率的读取
  5. 【转载】用JS控制输入内容
  6. [BZOJ4259]残缺的字符串
  7. Fragment生命周期与Fragment执行hide、show后的生命周期探讨
  8. android137 360 双击三击事件
  9. (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
  10. htmlcss笔记--标签默认值样式重置css reset(2)