web框架
Web框架(Web framework)或者叫做Web应用框架(Web application framework),是用于进行Web开发的一套软件架构。大多数的Web框架都封装了一些通用的功能,为Web的行为提供支持,开发人员只需要写入项目对应的逻辑代码即可。
python的三大主流web框架
django
特点: 大而全,自带的功能非常非常多
缺点: 过于笨重
flask
特点: 小而精 自动的功能特别少,支持插件扩展,第三方模块很多,所有第三方模块加起来可以盖过django,也越来越像django。
缺点: 依赖第三方开发者
tornado
特点:异步非阻塞,支持高并发,牛逼到可以开发游戏服务
缺点:会的人少
web框架提供的通用功能主要包括:
A. socket部分 (数据发送、接收与传输相关);
B. 路由与视图函数的对应关系 (路由匹配)
C. 模板语法 (动态页面引入外部变量的语法)
django:
A 用的是wsgiref模块
B 用的自己的
C 用的自己的(没有jinjia2好用,但也很方便)
flask
A 用的是werkzeug(内部也是wsgiref模块)
B 用的自己的
C 用的jinjia2模块
tornado
A B C 都是自己写的
django安装与简单使用
注意事项:
# 如何让你的计算机能够正常启动django项目
1. 计算机的名称不能有中文
2. 一个pycharm窗口只开一个项目(不要打开多余的文件夹)
3. 项目里的文件也尽量不要出现中文
4. python解释器尽量使用 3.4-3.6之间的版本
(如果你的项目报错 点击最后一个报错信息,去源码中把逗号删掉)
# django的版本问题
1.x 2.x 3.x(太新)
目前用的最多的还是1.x与2.x
安装与简单使用
命令行
- 安装django
# 如果超时报错,再次执行安装命令即可
pip install django==1.11.11
# 安装好后输入django-admin可看到命令介绍
- 创建一个名为mysite1 的django项目
django-admin startproject mysite1
- 进入项目目录,启动Django项目(默认127.0.0.1:8000)
cd mysite1
python manage.py runserver
#或指定ip端口
#python manage.py runserver 127.0.0.1:8888
浏览器访问 http://127.0.0.1:8000/,效果为
- 创建应用
#这里的应用也叫做app,可以理解为这个项目的各个大的功能模块,就类似于大学中的各个学院,一个学院就为一个应用。
python manage.py startapp app01
- templates配置
# 项目根目录下手动创建templates文件夹
# 配置文件 mysite1/mysite1/settings.py 中加入templates路径
'DIRS': [os.path.join(BASE_DIR, 'templates')],
- 应用注册
新建的应用app需要到配置文件 mysite1/mysite1/settings.py 中注册
pycharm
注: 社区版pycharm不支持django
-
安装django
-
创建新项目
点击file--> new project --> 选择django -
启动服务
命令行的方式启动python manage.py runserver
或
点击绿色小箭头。
- 创建应用
pycharm终端命令行输入 python manage.py startapp appname
-
templates配置
pycharm会自动创建templates目录与添加路径 -
应用注册与命令行的步骤一样
vscode
- 安装django
我没找到哪里能选择版本,就随便装了一个相近的版本
-
创建项目我直接使用命令行的方式,不知道vscode控制台还有没有其他方式
-
启动服务
需要先修改配置,把此段代码加到configurations中(别的教程能选择django,自动添加,我没有实现)
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}\\manage.py",
"args": [
"runserver",
"--noreload"
],
"django": true,
"justMyCode": false,
},
注意这里需要只打开项目根目录,上层不能有其他目录
选择调试模式django,点击绿色箭头即可启动服务
后续其他操作都与命令行一样。
项目文件介绍
mysite1/
├── manage.py # 管理文件,django的入口文件
└── app01 # 应用app01文件夹
| ├── migrations # 文件夹,数据库迁移记录
| | └── __init__.py
| ├── __init__.py
| ├── admin.py # django 后台管理相关
| ├── apps.py # 注册使用
| ├── models.py # 数据库相关的 模型类(orm)
| ├── tests.py # 测试文件
| └── views.py # 视图函数(视图层)
|
└── mysite1 # 项目目录
| ├── __init__.py
| ├── settings.py # 项目配置
| ├── urls.py # 路由,URL和函数的对应关系
| └── wsgi.py # wsgiref模块相关,runserver命令就使用此模块做简单的web server
|
└── templates # 存放html页面的文件夹
django小白必会三板斧
HttpResponse # 返回字符串类型的数据
render # 返回html文件
redirect # 重定向
return redirect('https://www.baidu.com') #重定向到某个网页
return redirect('/home/') #重定向到本地的一个页面
简单使用:
#创建3个路由:
/index 返回字符串"Hi,it's django~~~"
/hello 返回页面 hello.html
/oldindex 跳转到本地/index
/baidu 跳转到https://www.baidu.com
重启django服务后,访问效果为: