web框架介绍
web应用程序:Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件,它是典型的浏览器/服务器架构的产物
web应用程序本质是socket服务端,浏览器本质是socket客户端
- 服务器程序
负责socket请求,封装,接受http请求,发送http响应
底层,繁琐,交由专门的服务器软件,如Apache,nginx - 应用程序
负责具体逻辑
应用程序和服务器程序之间有个标准:WSGI,应用程序只要符合WSGI就能匹配服务器程序
和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同,然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的
web应用程序举例:淘宝、天猫、新浪、搜狐
web应用程序开发,是目前软件开发领域的三大方向之一
web应用框架的设计模式:MTV,MVC
MTV:
m:models,模型,负责业务数据对象与数据库对象
t:templates,模板,负责如何把数据展示给客户
v:viers,视图,负责业务逻辑
MVC:
m:models,模型,负责业务数据对象与数据库对象
v:viers,视图,负责与用户交互的页面
c:controls,控制器,接受用户的输入调用模型与视图
MTV和MVC没什么差别,就是为了解耦,为了保持各组件之间的松耦合关系
django介绍
web应用框架
http服务器:用来接收用户请求,并将请求转发给web应用框架进行处理
web应用框架处理完以后再发送给http服务器,http服务器再转发给用户
互联网,传送数据,信息, 比作电网
服务器 比作发电厂
web应用 比作电器
wsgi 比作电源模块
工具准备
Linux(Ubuntu),Python3(Python3.5+),pycharm(2017.1.5+),MySQL(5.8)
创建虚拟环境
- 使用virtualenv
- 创建隔离的Python运行环境
- Windows下:
1. 安装:pip install virtualenv
2. 创建独立的Python运行环境
virtualenv spider
创建新的Python环境放到当前目录下的spider目录中
3. 进入虚拟环境
env\spider\activate
- Linux下:
1. 安装:pip install virtualenv
2. 创建独立的Python运行环境
virtualenv -p /usr/bin/python3.6 env #指定Python版本
virtualenv env #默认Python2.7
创建新的Python环境放到当前目录下的env目录中
3. 进入虚拟环境
cd env
source ./bin/activate
4. 退出虚拟环境:deactivate
5. 删除虚拟环境:rmvirtualenv env
安装django
pip install django
查看当前环境下的第三方库:pip list
项目创建
- 新建项目的命令:django-admin startproject projectname
- 注意:由于编辑器版本之间的一些差别,我们统一使用跟编辑器版本无关的通用方式创建项目
- 先在命令行创建项目,然后在设置pycharm代码同步
开发服务器
开启服务器
- 方式一:
命令行模式:
在项目的根目录下执行命令
python manage.py runserver 0.0.0.0:8000 #0.0.0.0可以简写为0 - 方式二:
- 选择编辑器右上角的Edit Configuration的按钮
- 点击添加Django server
- 改Host为0.0.0.0,表示的是允许连接服务器的IP #方便调试,使用什么ip都能访问到
- 点击Environment Variables项后面的…
- 将DJANGO_SETTINGS_MODULE添加到Name,将项目名.settings添加到Value
- 在apply按钮上有可能fix有红灯标志,点进去,把Enable Django Support勾选上,Django project root行点文件夹标志,选上根目录,Settings行点文件夹标志,选上根目录下的settings.py文件
访问服务器
- 当用其中的一种方式开启了服务后,打开浏览器
- 在地址栏输入IP地址和服务的端口号
- 可以看到服务正在运行的页面
- 需要注意的点:
- IP:
- ifconfig查看IP,注意网络连接方式
- 虚拟机的端口转发时使用的是127.0.0.1回环地址
- port
- 远程连接ssh服务的端口号是22
- http服务端口号8000/8080
- MySQL服务的端口号3306
- IP:
创建视图函数
-
视图函数views.py文件中定义方法
def detail(request): return HttpResponse(‘hi girl')
urls.py文件中:
from django.urls import path, re_path from students import views #导入views urlpatterns = [ path('detail/', views.detail), #index前不要加/,django自动添加,index后面要加/ ]
然后运行,在浏览器中输入域名和路径
项目与应用app的关系
豆瓣就是由读书,电影,音乐,小组等app组成的一个项目,项目和app的关系就是网站和板块
新建app
- 在项目根目录下创建命令:python manage.py startapp app_name