CS/BS
- 客户端和服务器的交互模型
- Client
- Browser
- Server
- Web后端
- python:django、flask
- java
- php
- go
- Web后端
- Client
MVC
- 软件架构风格:不是标准
- 将数据操作、业务处理,界面展示进行了拆分
- 核心思想:解耦合/松耦合
- Model:模型,封装数据的交互操作
- View:视图,是用来将数据展示给用户的
- Controller:控制器,接受用户输入,用来协调Model和View的关系,并对数据进行操作,筛选
- 流程:控制器接收用户请求,调用模型,获取数据,控制器将数据展示到视图中
MTV
- 本质上是MVC,变种
- Model:同MVC中的Model
- Template:模版,只是一个html,充当的是MVC中的View的角色,用来做数据展示
- Views:视图函数,相当于MVC中的Controller
Django
-
基于Python的重量级Web框架,2005年开源,新闻站点:重量级(替开发者想了太多的事情,做了很多选择,内置了很多功能)
-
使用版本1.11.x:LTS,以后再看2.2 LTS
-
HelloDjango
- 虚拟环境
- mkvirtualenv 创建
- deactivate 退出
- workon 进入
- rmvirtualenv 删除
- 安装
- pip install django
- pip install django==1.11.7
- pip install django==1.11.7 -i https://pypi.douban.com/simple 换源
- 创建项目
- django-admin startproject xxx
- 项目结构
-xxx
- manage.py
- 管理整个项目的文件
- 命令基本都通过它来调用
- xxx
- init:
- settings:项目的全局配置文件
- urls:跟路由
- wsgi:项目部署时使用
- 启动项目
- python manage.py runserver
- 使用开发者服务器
- 默认运行在本机的8000端口上
- 还可以添加参数
- [[ip:]port]:0.0.0.0、代表本机所有ip
- python manage.py runserver
- 创建一个应用
- python manage.py startapp App
- App结构
- init
- views:视图函数
- models:模型
- admin:后台管理
- tests:单元测试
- migrations:__init__中,迁移目录
- 第一件事
- 将应用注册到项目的settings中INSTALLED_APPS中
- 请求流程
- Browser -> urls
- urls -> views
- views ->models
- models -> views
- views -> response
- 编写第一个请求
- 编写一个路由
- urlpatterns
- url(p1,p2)
- p1正则匹配规则
- p2对应的视图函数
- 编写视图函数
- 本质上还是一个函数
- 只是默认第一个参数是一个request
- 必须返回一个response
- HttpResponse
- render:渲染,简写
- 编写一个路由
- 连接数据库
- 默认在django中集成数据库
- SQLite:轻量级数据库,没用户名,没密码,常用的场景Android、IOS、WP
- 修改数据库
- 在settings中DATABASES中进行修改
- 实际上都是关系型数据库
- mysql
- 驱动:1.mysqlcient 2.mysql-python 3.pymysql:会伪装,install_as_mysqldb()
- USER
- PASSWORD
- HOST
- PORT
- NAME
- ENGINE
- 迁移
- 生成迁移:python manage.py makemigrations
- 执行迁移:python manage.py migrate 才会产生表
-数据操作
- 增删改查
- 存储数据:创建对象进行save()
- 数据查询:1.模型.object.all() 2.模型.object.get()
- 更新:1.基于查询 2.save()
- 删除:1.基于查询 2.delete()
- 默认在django中集成数据库
- 显示在模版中
- 先挖坑:{{ var }}
- 在填坑:1.渲染模版时候传递上下文进来 2.上下文是一个字典 3.key就是var,value就是要传入的值
- for支持
- pip install django
- 虚拟环境