赞
踩
Flask 轻量级的WEB框架
AJAX 在WEB中完成异步的请求和响应
Django 重量级的WEB框架
1.静态网页 和 动态网页
1.静态网页 : 无法与服务器进行数据交互的网页
2.动态网页 : 允许与服务器进行数据交互的网页
2.WEB 与 服务器
1.WEB : 网页(HTML,CSS,JS)
2.服务器(Web Server)
能够给用户提供服务的机器就是服务器
1.硬件 和 软件
硬件 : 一台计算机
软件 : 一个能够接收用户请求并个给出响应的程序
1.作用
1.存储WEB的信息
2.能够处理用户的请求(request)和响应(response)
3.执行服务器端的处理程序
4.具备最基本的安全功能
2.服务器端的软件
1.APACHE
2.TOMCAT
3.IIS(Internet Information Service)
4.Nginx
3.框架
1.什么是框架
框架是一个为了解决开放性问题而存在的一种程序结构
框架的本身提供了最基本的功能
我们只需要在框架的基础功能上搭建自己的操作就可以了
2.Python web 框架
1.Flask - 轻量级
2.Webpy - 轻量级
3.Tornado - 异步框架
4.Django - 重量级
3.框架模式
1.MTV(Flask,Django)
M : Models层,模型层,负责与数据库打交道
T : Templates层,模板层,处理用户显示的内容,如html
V : Views层,视图层,处理与用户打交道的内容(请求和响应)
2.MVC
M : Models层,模型层,负责与数据库打交道
V : Views层,视图层,处理用户显示的内容,如html
C : Controller层,控制器层,处理与用户打交道的内容(请求和响应)
M --- M
T --- V
V --- C
4.Flask
1.什么是Flask
Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI服务的一个微型框架(Micro Framework)
WSGI : Web Server Gateway Interface(WEB服务网关接口)
Flask是基于 MTV 框架模式开发出来的框架
2.安装Flask
1.查看已安装的Flask版本
- 在 python 的交互模式中
- 1.import flask
- 没报错 : 已经安装好了Flask,可以继续查看版本
- 报错 : 没安装Flask
- 2.flask.__version__
- 已安装Flask的情况下,查看安装的版本
2.安装Flask
- sudo pip3 install flask
- pip3 download flask
3.初始化Flask应用
见代码... ..
4.杀掉占用5000端口的进程
1.netstat -lptu
查看占用5000端口的进程ID
2.sudo kill -9 进程ID
将进程ID对应的程序杀掉
5.Flask - 路由(route)
1.什么是路由
处理url和函数之间的关系的程序就是"路由"
- @app.route('/login')
- def login():
- pass
2.路由的体现
在Flask中,路由是通过@app.route装饰器来表示的
1.基本的路由体现
- # http://localhost:5000/admin/login
- @app.route('/admin/login')
- def admin_login():
- return "xxx"
2.带参数的路由
路由中可以携带参数来表示不同的数据
http://localhost:5000/show/wangwc
http://localhost:5000/show/gebilaowang
http://localhost:5000/show/chaogege
http://localhost:5000/show/xxx
1.基本带参路由
@app.route('/show/<name>')
def show(name):
# name 参数表示的就是由地址栏上传递进来的数据
pass
2.带多个参数的路由
多个参数使用 / 隔开,并继续使用 <> 来表示
@app.route('/show/<name>/<age>')
def show(name,age):
pass
3.指定参数类型的路由
使用 类型转换器 解决参数类型的问题
@app.route('/show/<name>/<int:age>')
def show():
name : 字符串类型的数据
age : 整数类型的数据
int:类型转换器
Flask中所支持的类型转换器
类型转换器 作用
缺省 字符串,不能有斜杠('/')
int: 整数
float: 浮点型
path: 字符串,允许有斜杠('/')
练习:
1.访问路径如下
http://localhost:5000/calc/数字1/数字2
2.根据以上的访问路径制定路由以及视图处理函数
3.在视图中,对两个数字进行相加,并响应在浏览器上
3.多 URL 的路由匹配
@app.route('/地址1')
@app.route('/地址2')
.... ....
def index():
return ""
3.路由中设置允许接收的HTTP请求方法
所有的路由默认只接受get请求,不接受post请求
@app.route('/xxx',methods=['POST','GET'])
@app.route('/xxx',methods=['POST'])
4.URL的反向解析
正向解析:程序自动解析,会根据访问路径(@app.route('xxx')),自动来匹配处理函数
反向解析:通过视图处理函数的名称自动生成对应的访问路径
在Flask中要实现反向解析的话,需要使用:
from flask import url_for
url_for(funName,args)
funName : 要生成地址所对应的函数名
args : 该地址中要用到的参数
- from flask import Flask
-
- #将当前运行的主程序构建成Flask应用,以便接收用户(request)的请求并给出响应(response)
- app = Flask(__name__)
-
- #@app.route() 定义Flask中的路由,就是访问路径,'/'表示的是整个网站的根路径
- #index()表示的是匹配上路由之后的处理程序-视图函数,所有的视图必须要有一个return用于表示响应的内容
- # @app.route('/')
- # def index():
- # print('这是输出在终端上的内容')
- # return "This is my first flask demo"
-
- #http://localhost:5000/login
- @app.route('/login')
- def login():
- return "<h1>欢迎来到登录页面</h1>"
-
- @app.route('/register')
- def register():
- return "欢迎来到注册页面"
-
- #参数1:基本带参路由的体现
- @app.route('/show/<name>')
- def show(name):
- return "传递进来的参数为:"+name
-
- #参数2:带多个参数的路由体现
- @app.route('/show1/<name>/<age>')
- def show1(name,age):
- return "姓名:%s,年龄:%s" % (name,age)
-
- #参数3:使用类型转换器实现参数的类型转换
- @app.route('/calc/<int:num1>/<int:num2>')
- def calc(num1,num2):
- #num1和num2全部都是整型的
- return "%d+%d=%d" % (num1,num2,num1+num2)
- #定义多url的路由匹配
- @app.route('/')
- @app.route('/index')
- @app.route('/<int:page>')
- @app.route('/index/<int:page>')
- def index_views(page=None):
- if page is None:
- page = 1
- # print("您当前看的页数为:" , page)
- return "您当前看的页数为:%d" % page
-
- @app.route('/post',methods=['POST','GET'])
- def post():
- return "该方法允许接收get和post请求"
-
- if __name__ == "__main__":
- #运行Flask应用(启动Flask服务),启动之后允许通过http://localhost:5000的方式来访问当前项目
- app.run(debug=True)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。