圣经都是神所默示的,于教训、督责、使人归正、教导人学义都是有益的,叫属神的人得以完全,预备行各样的善事。(2 TIMOTHY 3:16-17)

为做网站而准备

作为一个程序猿一定要会做网站。这也不一定吧,貌似是,但是,如果被人问及此事,如果说自己不会,的确羞愧难当呀。所以,本教程要讲一讲如何做网站。

首先,为自己准备一个服务器。这个要求似乎有点过分,作为一个普通的穷苦聊到的程序员,哪里有铜钿来购买服务器呢?没关系,不够买服务器也能做网站,可以购买云服务空间或者虚拟空间,这个在网上搜搜,很多。如果购买这个的铜钿也没有,还可以利用自己的电脑(这总该有了)作为服务服务器。我就是利用一台装有ubuntu操作系统的个人电脑作为本教程的案例演示服务器。

然后,要在这个服务器上做一些程序配置。一些必备的网络配置这里就不说了,比如我用的ubuntu系统,默认情况都有了。如果读者遇到一些问题,可以搜一下,网上资料多多。另外的配置就是python开发环境,这个应该也有了,前面已经在用了。

接下来,要安装一个框架。本教程中制作网站的案例采用tornado框架。

在安装这个框架之前,先了解一些相关知识。

开发框架

对框架的认识,由于工作习惯和工作内容的不同,有很大差异,这里姑且截取维基百科中的一种定义,之所以要给出一个定义,无非是让看官有所了解,但是是否知道这个定义,丝毫不影响后面的工作。

软件框架(Software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。

框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。

简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说就是使用别人搭好的舞台,你来做表演。

我比较喜欢最后一句的解释,别人搭好舞台,我来表演。这也就是说,如果在做软件开发的时候,能够减少工作量。就做网站来讲,其实需要做的事情很多,但是如果有了开发框架,很多底层的事情就不需要做了(都有哪些底层的事情呢?读者能否回答?)。

有高手工程师鄙视框架,认为自己编写的才是王道。这方面不争论,框架是开发中很流行的东西,我还是固执地认为用框架来开发,更划算。

python框架

有人说php(什么是php,严肃的说法,这是另外一种语言,更高雅的说法,是某个活动的汉语拼音简称)框架多,我不否认,php的开发框架的确很多很多。不过,python的web开发框架,也足够使用了,列举几种常见的web框架:

Django:这是一个被广泛应用的框架。在网上搜索,会发现很多公司在招聘的时候就说要会这个。框架只是辅助,真正的程序员,用什么框架,都应该是根据需要而来。当然不同框架有不同的特点,需要学习一段时间。

Flask:一个用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。

Web2py:是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容Google App Engine。

Bottle: 微型Python Web框架,遵循WSGI,说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。

Tornado:全称是Tornado Web Server,从名字上看就可知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。

webpy: 轻量级的Python Web框架。webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。

说明:以上信息选自:http://blog.jobbole.com/72306/ ,这篇文章中还有别的框架,由于不是web框架,我没有选摘,有兴趣的去阅读。

Tornado

本教程中将选择使用Tornado框架。此前有朋友建议我用Django,首先它是一个好东西。但是,我更愿意用Tornado,为什么呢?因为......,看下边或许是理由,或许不是。

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架以开源软件形式开放给大众。看来Tornado的出身高贵呀,对了,某国可能风闻有Facebook,但是要一睹其芳容,还要努力。

用哪个框架,一般是要结合项目而定。我之选用Tornado的原因,就是看中了它在性能方面的优异表现。

Tornado的性能是相当优异的,因为它试图解决一个被称之为“C10k”问题,就是处理大于或等于一万的并发。一万呀,这可是不小的量。(关于C10K问题,看官可以浏览:C10k problem)

条件:处理器为 AMD Opteron, 主频2.4GHz, 4核

服务

部署

请求/每秒

Tornado

nginx, 4进程

8213

Tornado

1个单线程进程

3353

Django

Apache/mod_wsgi

2223

web.py

Apache/mod_wsgi

2066

CherryPy

独立

785

看了这个对比表格,还有什么理由不选择Tornado呢?

就是它了——Tornado

安装Tornado

我在自己电脑中(是我目前使用的服务器),用下面方法安装,只需要一句话即可:

pip install tornado

这是因为Tornado已经列入PyPI,因此可以通过 pip 或者 easy_install 来安装。

如果不用这种方式安装,下面的页面中有可以供看官下载的最新源码版本和安装方式:https://pypi.python.org/pypi/tornado/

此外,在github上也有托管,看官可以通过上述页面进入到github看源码。

我没有在windows操作系统上安装过这个东西,不过,在官方网站上有一句话,可能在告诉读者一些信息:

Tornado will also run on Windows, although this configuration is not officially supported and is recommended only for development use.

特别建议,在真正的工程中,网站的服务器还是用Linux比较好,你懂得(吗?)。

技术准备

除了做好上述准备之外,还要有点技术准备:

HTML

CSS

JavaScript

我们在后面实例中,不会搞太复杂的界面和JavaScript(JS)操作,所以,只需要基本知识即可。

python零基础网站制作_为做网站而准备相关推荐

  1. Python零基础快速制作足球游戏

    Python零基础快速制作足球游戏 前言 卡塔尔世界杯正是进行得火热,十六强队伍已经诞生,后面就是越来越紧张的争夺八强的淘汰赛.目前爆冷的赛果让球迷一度情绪失落,比如:日本2-1战胜西班牙,韩国2-1 ...

  2. python零基础书推荐_零基础学习Python(Python初学者、Python入门)常见问题:资料、社区、书籍推荐...

    Python web开发 QQ学习群:338985564 ,欢迎各位加入,一起学习. 本文针对零基础的,想学习Python者.本文会不定时更新. 一.学会使用搜索引擎,尤其是Google. 推荐阅读文 ...

  3. 人工智能python零基础入门教程_人工智能零基础入门视频教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 人工智能零基础入门视频教程 100天人工智能工程师学习计划 -- 全程实战案例,从机器学习原理到推荐系统实现,从深度学习入门到图像语义分割及写诗机器人,再 ...

  4. 慕课网python零基础入门教程_零基础Python爬虫入门学习一之综述

    原标题:零基础Python爬虫入门学习一之综述 大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章 ...

  5. python零基础推荐书籍_零基础入门学习Java,这几本经典的Java学习书籍,可以推荐你看下,绝对受益匪浅!...

    书是人类不可或缺的精神食粮.正如高尔基所言:书是人类进步的阶梯.借名人名言给大家推荐一些对java学习有用的经典书籍,对程序员来说,我觉得最佳学习方式还是看书,看视频花费时间太长,而阅读博客则不够系统 ...

  6. Python零基础之爬取王者荣耀官方网站高清壁纸(普通版)

    Python零基础之爬取王者荣耀官方网站高清壁纸 目标: 分析过程: 1. 确定目标url 2. 解决url解析问题 3. 图片下载解析 4. 多页面的处理 代码示例 需要注意的问题: 目标: 1.下 ...

  7. c语言python零基础教学_编程零基础应当如何开始学习 Python?附教程

    零基础学编程,用python入门是个不错的选择,虽然国内基本上还是以c语言作为入门开发语言,但在国外,已经有很多的学校使用python作为入门编程语言.此外,python在机器学习,人工智能领域也非常 ...

  8. python免费训练营教程_鹅厂大牛亲授Python零基础寒假训练营视频教程

    目录:/093 鹅厂大牛亲授python零基础寒假训练营 $ U  t  E; k6 g, M- t┣━━(补充章节)  第八章第2节-集合序列操作,遍历及推导式.mp4 . l2 A: f8 {2 ...

  9. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

最新文章

  1. windows 7 64bit安装apche php
  2. layui 日历选中日期,自动填充
  3. 用了那么多年MySQL不知道Explain?怪不得性能那么差!
  4. 中石油训练赛 - 围栏翻新(思维+贪心+差分)
  5. 什么是跨域及跨域请求资源的方法?
  6. NodeJS React 开发环境搭建
  7. 北京的小伙伴,本周五阿里聚安全约你来玩
  8. 网站压力测试工具webbench使用说明
  9. exist name
  10. e5服务器系列天梯图,至强e5处理器天梯图_至强E5系列CPU排行榜高清图2020-win7之家...
  11. C# 文件复制和移动操作(单个文件)
  12. [转] 张凌 ARM体系架构
  13. nfcwriter下载 ios_被苹果封杀至今的下载神器,更新适配iOS 13系统
  14. cfg80211 subsystem中的cfg80211_ops
  15. 秒杀各种Pay?Samsung Pay支付宝功能率先体验
  16. ubuntu中用vscode编译调试C\C++
  17. JS 实现别踩白块功能
  18. KBEngine和Unity3d搭建多人在线游戏(1)
  19. VISA招商银行全币种国际芯片卡
  20. 华硕T303UA Rev 3.3 60NB0C60-MB2140点位图FZ

热门文章

  1. ei指什么_什么是ei和ei检索是什么意思
  2. D. Alex and Julian
  3. zblog html代码,ZBLOG调出最新留言评论内容代码
  4. gitHub 代码从fork到push
  5. 城市代码(weather.com)[转]
  6. mysql按笔划排序_mysql中怎么按姓氏笔画排序
  7. 最新微信8.0.1抢红包神器-亲测2021年2月11日可用-安卓IOS
  8. 基于初始残差循环神经网络的乳腺癌组织病理学图像的分类
  9. Delphi Web前端开发教程(2):基于TMS WEB Core框架
  10. 网站制作教程是什么?这些步骤要知道