小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学。

  到晚上下班后回到家里,打开电脑开始写起代码来......(传送门: python开发环境搭建 )

  要写一个web服务,首先要做的就是实现程序的入口,所以先来个Hello World吧

  1.创建项目

  先在电脑创建这个目录 E:\Python\simple\code (一定要全英文,因为IDE有可能不支持中文路径),然后运行IDE软件:PyCharm

  点击菜单File,然后点击Open,弹出Open File or Porject窗口,在窗口中选择刚才创建的目录后,点击OK

  

  然后项目列表中就多出了一个项目

  

  2.创建主入口文件

  对项目code点右键 -> New -> Python File,在弹出窗口New Python file中,输入文件名称:main,点击ok

  

  

  然后在打开的main.py文件中粘贴下面代码

 #!/usr/bin/evn python
# coding=utf-8 from bottle import default_app, get, run
from beaker.middleware import SessionMiddleware # 设置session参数
session_opts = {
'session.type': 'file',
'session.cookie_expires': 3600,
'session.data_dir': '/tmp/sessions/simple',
'session.auto': True
} @get('/index/')
def callback():
return 'Hello World!' # 函数主入口
if __name__ == '__main__':
app_argv = SessionMiddleware(default_app(), session_opts)
run(app=app_argv, host='0.0.0.0', port=9090, debug=True, reloader=True)

  这时会发现,IDE中bottle与beaker会出现红色警告线,这是因为你的开发环境还没有安装这两个模块

  点击右键运行Debug 'main'后,下方的Debug窗口会出现ImportError: No module named 'bottle'这样的提示,提示导入bottle包出错

  所以我们需要先安装这两个包,点击下方的Terminal,输入pip install bottle 回车后开始安装bottle包

  

  等安装完成后,同样的输入pip install beaker 安装beaker包

  完成后,在main.py文件窗口中的空白处点右键,点击Debug 'main',运行Debug

  

  会发现web服务已经启动了,端口号是9090

  

  我们打开浏览器,在地址栏处输入http://127.0.0.1:9090/index/ 回车后就可以看到Hello World了

  

  3.程序代码说明

  #!/usr/bin/evn python

  这是标识当前脚本指定用python来执行它,为了防止用户没有将python装在默认的/usr/bin路径里,系统执行时首先会到env设置里查找python的安装路径,再调用对应路径下的python程序来执行。

  # coding=utf-8

  这一行说明当前文件用的是utf-8编码

  from bottle import default_app, get, run

  from beaker.middleware import SessionMiddleware

  第4与第5行用于导入bottle包和beaker包的指定模块

  由于bottle框架自身并没有提供Session的支持,所以使用beaker中间件来实现。

  # 设置session参数
  session_opts = {
    'session.type': 'file',
    'session.cookie_expires': 3600,
    'session.data_dir': '/tmp/sessions/simple',
    'session.auto': True
  }

  第7到第13行,是创建一个session配置的字典,用来存储session的存储类型为文件类型,session过期时间为3600秒,session文件存放路径为/tmp/sessions/simple (存放在linux系统tmp目录下的文件,系统定期会自动清理)

  @get('/index/')
  def callback():
    return 'Hello World!'

  第15到17行,我们定义了一个/index/的路由,用于浏览器访问时,可以通过这个路同来定位到这里(也就是前面浏览器输入url地址,这里我们可以随意定义为任何路由都可以),访问路由的方式我们定义为get方式,当然还可以定义为post、put、delete等访问路由的方式。

  if __name__ == '__main__':
    app_argv = SessionMiddleware(default_app(), session_opts)
    run(app=app_argv, host='0.0.0.0', port=9090, debug=True, reloader=True)
  第20行,它标识当前位置为程序的主入口,运行程序时,由这里开始

  第21行,初始化session参数

  第22行,启动WSGI WEB程序,地址为本机地址,访问端口为9090,开始debug,最后有个参数reloader设定项目代码有修改时,自动重新启动web服务,重新载入修改后的代码

  PS:我们使用的Bottle框架,它是一个快速的,简单的,非常轻量级的 Python WSGI Web 框架。它只有一文件,只依赖于 Python 标准库 。懂英文的可以直接访问:http://www.bottlepy.org/docs/dev/tutorial.html 查看bottle开发文档,也可以点击:下载bottle中文文档

版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

python开发QQ群:669058475(本群已满)、733466321(可以加2群)    作者博客:http://www.cnblogs.com/EmptyFS/

我的第一个python web开发框架(6)——第一个Hello World的更多相关文章

  1. 我的第一个python web开发框架(14)——后台管理系统登录功能

    接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...

  2. 我的第一个python web开发框架(41)——总结

    我的第一个python web开发框架系列博文从17年6.7月份开始写(存了近十章稿留到9月份才开始发布),到今天结束,一年多时间,想想真不容易啊. 整个过程断断续续,中间有段时间由于工作繁忙停了好长 ...

  3. 我的第一个python web开发框架(1)——前言

    由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机 ...

  4. 我的第一个python web开发框架(3)——怎么开始?

    小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...

  5. 我的第一个python web开发框架(22)——一个安全小事故

    在周末的一个早上,小白还在做着美梦,就收到了小美的连环追魂call,电话一直响个不停. 小白打着哈欠拿起电话:早上好美女. 小美:出事了出事了,我们公司网站一早访问是一片空白,什么内容都没有了,你赶急 ...

  6. 我的第一个python web开发框架(19)——产品发布相关事项

    好不容易小白将系统开发完成,对于发布到服务器端并没有什么经验,于是在下班后又找到老菜. 小白:老大,不好意思又要麻烦你了,项目已经弄完,但要发布上线我还一头雾水,有空帮我讲解一下吗? 老菜:嗯,系统上 ...

  7. 我的第一个python web开发框架(38)——管理员管理功能

    后台管理员的管理功能,它主要用来管理后台的登录账号,绑定权限,当然如果想将后台管理扩展成企业相关管理系统,比如用于公司人事管理,在这个基础上进行适当扩展就可以了. 我们先看看界面效果(也可以看着数据字 ...

  8. 我的第一个python web开发框架(34)——后台管理系统权限设计

    框架底层和接口终于改造完成了,小白再次找到老菜. 小白:老大,上次你对后台权限系统简单的讲了一下,我一点头绪都没有,现在有空完整的说一说吗? 老菜:说到权限系统,要讲明白真不容易,权限系统并不是越复杂 ...

  9. 我的第一个python web开发框架(2)——一个简单的小外包

    第一部分说明 第一部分大概有20来章,主要讲的是一些开发常识.开发前中后期准备内容.开发环境与服务器部署环境安装设置.python基础框架结构与功能等内容,代码会比较简单. 本系列会以故事的方式,向大 ...

随机推荐

  1. Linux-使用patch命令给uboot打补丁(3)

    patch:修改文件,让用户对原文件打补丁 用法        patch -p[剥离层级]  <[补丁文件] 打补丁示例: u-boot-1.1.6_jz2440.patach补丁文件给u-b ...

  2. 为何webpack打包后的文件要放在服务器上才能运行

    为何会有此问: 在刚开始使用vue-cli时还不知道打包后的文件要在服务中才能运行,直接点开后发现页面白板,请教大神后得知要起一个服务才能运行起来,当时我脑子中的逻辑是这样的: 因为:js代码是由浏览 ...

  3. C#之实参和形参

    1.值类型 例如:我们定义一个函数 static void Exchange(int x, int y) { int flag = x; flag = y; y = x; x = flag; } 其中 ...

  4. 带你简单了解python协程和异步

    带你简单了解python的协程和异步 前言 对于学习异步的出发点,是写爬虫.从简单爬虫到学会了使用多线程爬虫之后,在翻看别人的博客文章时偶尔会看到异步这一说法.而对于异步的了解实在困扰了我好久好久,看 ...

  5. MPLS VPN随堂笔记1

    MPLS VPN 基础 1.MPLS vpn架构的特点 1.1.允许不同CE传递相同私网路由 1.2.SP内部(所有P路由器)不需要学习CE路由 1.3.无安全保障但有带宽保障(跟SP租用服务) 2. ...

  6. 201521123060 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:contains方法调用indexOf方法,遍历遍历内部用于保存数据的e ...

  7. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  8. Java课程设计+购物车WEB页面

    1. 团队名称(keke) 徐婉萍:网络1511 201521123006 2. 项目git地址 3. 项目git提交记录截图 4. 项目功能架构图与主要功能流程图 项目功能架构图 项目主要功能流程图 ...

  9. 201521123039 《java程序设计》第十一周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有 ...

  10. 201521123033《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. answer: 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号 ...