Django笔记(二)——上一篇的总结版本

CS/BS

  • 客户端和服务器的交互模型
    • Client
      • Browser
    • Server
      • Web后端
        • python:django、flask
        • java
        • php
        • go

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 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()
      • 显示在模版中
        • 先挖坑:{{ var }}
        • 在填坑:1.渲染模版时候传递上下文进来 2.上下文是一个字典 3.key就是var,value就是要传入的值
        • for支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值