欢迎加入知了课堂,学习flask
Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002
Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006
本篇文章只有一个目的,使用flask开发一个简单的服务器:浏览器发送请求 -->服务器 ,服务器返回一个静态页面给浏览器。页面显示 Hello World 。严格来说,这算是笔者开发flask的第一步,我会尽量详细一些。如果有不正确的地方,还望各位前辈指出来。
开发工具:pycharm 专业版
相关概念知识:浏览器、服务器、请求-响应、URL、服务器、web服务器、应用服务器、web应用框架、静态网页与动态网页
1. URL:URL是Uniform Resource Locator的简写,统一资源定位符。统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。浏览器(作为客户端)向服务器(服务端)发送一个请求,作为答复,服务器也会向浏览器返回一个结果。如果访问服务器成功的话,服务器给我们返回让浏览器渲染出一个精致的界面。这就是请求-响应模式。这里面有几个问题,例如,浏览器是如何找到并访问特定的服务器资源的呢?回想一下,当我们想访问一个网站是,可以在百度或者其他搜索引擎里查找这个网站的名字。另一种直接的方法,就是在浏览器上方的地址栏里输入这个网站的地址(域名或者是IP地址),可这并不是完整版URL。
一个RUL由以下几个部分组成:
scheme://host:port/path/?query-string=xxx#anchor
* scheme:代表的是访问的协议,一般为http或者https以及ftp等。
* host:主机名,域名,比如www.baidu.com。
* port:端口号。当你访问一个网站的时候,浏览器默认使用80端口。
* path:查找路径。比如:www.jianshu.com/trending/now,后面的trending/now就是path。
* query-string:查询字符串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查询字符串。
* anchor:锚点,后台一般不用管,前端用来做页面定位的。比如:https://baike.baidu.com/item/%E5%88%98%E5%BE%B7%E5%8D%8E/114923?fr=aladdin#7
2. 服务器、web服务器、应用服务器、web应用框架 之间的关系
服务器:就是物理意义上的服务器
web服务器:负责处理http请求,响应静态文件,常见的有Apache,Nginx以及微软的IIS.
应用服务器:负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器来处理的, 只能通过应用服务器来处理,常见的应用服务器有uwsgi、tomcat等。
web应用框架 :一般使用某种语言,封装了常用的web功能的框架就是web应用框架,flask、Django以及Java中的 SSH(Structs2+Spring3+Hibernate3)框架都是web应用框架。
#web服务器 & 应用服务器 & web应用框架
通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。
flask是web应用框架,应用框架是对常用web功能的封装,方便开发者实现功能。严格来说,可以不使用web应用框架来做web应用开发,但这会让开发变得十分繁杂
3. 静态网页与动态网页的区别
摘自百度上一位大哥的总结:
静态页面是不能随时改动的,静态是一次性写好放在服务器上进行浏览的,如果想改动,必须在页面上修改,然后再上传服务器覆盖原来的页面,这样才能更新信息,比较麻烦,使用者不能随时修改。
动态页面是可以随时改变内容的,有前后台之分,管理员可以在后台随时更新网站的内容,前台页面的内容也会随之更新,比较简单易学。
1. 打开Pcharm,创建一个新项目。就保存在之前创建虚拟环境的那个目录。
2.选项如下
3. 这时,pycharm会自动给你生成一个测试程序(没有的话请手动编写)。
from flask import Flask
app = Flask( __name__ )
@app.route( '/' )
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
from flask import Flask //从fllask中 引入 Flask这个类
app = Flask( __name__ ) //创建一个对象实例,目的是所有来自客户端的请求都转交这个对象处理。 __name__是指定参数
@app.route( '/' ) //@ python修饰器,修饰下面的函数。 这条语句的作用是把修饰的函数注册为路由(路由是指 URL到 函数之间的映射关系)
def hello_world(): //一个视图函数,返回字符串
if __name__ == '__main__': //判断,服务器直接执行这个 .py脚本才会执行下面的 app.run()
app.run() //启动Web服务器 实际上服务器启动后,会进入轮询(监听端口),直到程序停止
127.0.0.1 :回送地址,通过这个地址,请求发送到本机服务器
5000 : 端口号(从服务器看,一个端口相当于一个进程)。flask项目默认5000端口。
5.效果展示
PS:
app.run()可以接受参数,例如:
app.run(debug = True) //调试模式
app.run(port = 8000) //改变端口为 8000
欢迎加入知了课堂,学习flask
Python Flask系列(1)——基础:http://study.163.com/course/courseMain.htm?courseId=1004091002
Python Flask框架——全栈开发: http://study.163.com/course/courseMain.htm?courseId=1004507006