zoukankan      html  css  js  c++  java
  • 02.Django基础

    1. web项目工作流程


    1.1 了解web程序工作流程

    1.2 django生命周期

    流程图


    2. django介绍

    • 目的:了解Django框架的作用和特点
    • 作用
      • 简便、快速的开发数据库驱动的网站
    • Django的优势
      • 快速开发
      • MVT
      • 功能齐全
    • 思考:用django还是flask
      • 开发数据驱动web网站(复杂业务逻辑)
      • 数据分析后的结果展示界面flask
      • 快速成型应用上线,就用django

    3. Django设计模式(MVC/MVT)

    • 目的:了解什么是MVCMVT
    • 思考:为什么要用设计模式
      • 分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。
    • MVC
      • M:全拼为Model,主要封装对数据库层的访问,对数据中的数据进行增、删、改、查操作。
      • V:全拼为View,用于封装结果,生成页面展示的html内容。
      • C:全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。
    • MVT
      • M:全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理
      • V:全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
      • T:全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

    4. 虚拟环境的安装

    • 目的: 学会创建新的虚拟环境

    • win10安装

      pip intsall virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple
      
    • linux安装

      # 方法2:linux
      pip3 install virtualenvwrapper
      mkdir $HOME/.virtualenvs # 把所有虚拟环境指定到一个目
      录文件夹下存放
      find / -name virtualenvwrapper.sh # 查找执行脚本路径,添加到
      ~/.bashrc
      vim ~/.bashrc 			# 修改bash配置文件
      
      '''
      export WORKON_HOME=$HOME/.virtualenvs
      VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
      source /usr/local/bin/virtualenvwrapper.sh
      '''
      
      
      # 虚拟环境相关命令
      mkvirtualenv test1 # 创建虚拟环境
      mkvirtualenv test2env -p python3
      lsvirtualenv # 查看虚拟环境
      workon test1 # 进入虚拟环境
      deactivate # 退出虚拟环境
      rmvirtualenv test1 # 删除虚拟环境
      pip list # 查看虚拟环境下的安装包
      
      
      # pip命令基本使用
      pip install pname  	# 安装模块
      pip list			# 查看当前虚拟环境中安装了哪些模块
      pip show pname    # 查看某一个模块详细的信息(比较全的)
      pip freeze  # 查看已安装的模块(显示你后续安装的模块)
      pip freeze > requirements.txt # 导出依赖包
      pip install -r requirements.txt # 从文件安装依赖包
      
      
      

    5. 创建项目

    • 目的:能够通过django的命令创建工程
    • 过程:
      1. 进入到虚拟环境
      2. 创建项目:django-admin startproject 项目名称
      3. 进入到manage.py所在的文件夹
      4. 启动项目:python manage.py runserver
    • 注意点:
      • 如果不指定,django默认端口8000
      • 也可以指定:python manage.py runserver ip:port

    6. 创建子应用(app)

    • 目的:能够使用django中的命令来创建app
    • 过程:
      1. 进入到manage.py所在的同级文件夹
      2. 创建子应用:python manage.py startapp app名称
    • 三步完成子应用创建
      1. 注册子应用
      2. 创建app下的urls文件
      3. 主路由引入子路由

    7. 项目的配置(settings.py文件)

    • 目的:知道常见的配置作用即可

    • 常见的配置有:

      • BASE_DIR:项目在操作系统中的绝对路径
      • DEBUG:调试模式,默认是True
      • LANGUAGE_CODE: zh-hans中文
      • TIME_ZONE: Asia/Shanghai 中国时间
      LANGUAGE_CODE = 'en-us' # zh-hans
      
      USE_I18N = True # 国际化, 多语言
      
      TIME_ZONE = 'UTC' # Asia/Shanghai
      
      USE_L10N = True # 时间相关, 时间显示格式, 中文时间格式 xxxx年xx月xx日 21:21:21
      
      USE_TZ = True # 时间相关, 使用时区时间, 如果发现时间差8个小时,就查看这个配置
      

    8. 静态资源问题

    • 目的:在django中如何配置静态文件的访问地址和文件夹
    • 配置:
      • STATIC_URL:静态资源的访问路径,默认是/static/
      • STATICFILES_DIRS:静态资源的文件夹,并且是一个列表。
    • 注意点:
      • STATICFILES_DIRS:是一个列表,寻找文件的时候,从前向后依次寻找,找不到报404错误

    9. 地址匹配

    • 目的:在浏览器访问服务器的时候,根应用的地址,子应用的地址是如何进行匹配的
    • 格式1:基本匹配, 从上到下
    • 格式2:匹配混乱问题, 有路由覆盖的问题, 建议用path方法
    • 格式3:
      • 子应用地址后面的 / 问题, 建议大家写的时候都加上
        • url(r'^index/$', index)
      • 在访问的时候,浏览器自动会定向到带有/的地址上面去,这样在访问的时候不管是否携带/, 都能访问。

    10. 路由参数名设置

    • 目的:能够在地址中编写正则匹配
    • 过程:
      • 格式1:不指定正则匹配的名字:/hello/([a-z]+)/(d+)
        • 按照顺序依次匹配,传递参数
      • 格式2:指定正则的名字:/hello/(?P[a-z]+)/(?Pd+)
        • 按照名字来匹配,传递参数

    11. 常用的请求方式(get)

    • 目的:通过request对象,获取查询参数
    • 过程:

    12. post, put , delete

    • 目的:获取request获取表单,及非表单提交的非查询参数数据

    • 常见的请求方式有:POST,PUT,DELETE,PATCH

      • 请求体中的数据, 一类是json, 一类是表单数据

      • request.POST: 获取表单数据(会把body的内容,解析一份, 解析成一个查询字典)

      • request.body:获取json数据

        • 需要将bytes类型转成dict格式,用到decode(),loads()
        # 1.拿到bodyjson数据
        body_json = request.body.decode()
        
        # 2. 解析json数据
        body_dict = json.loads(body_data)
        
    • Post, put都需要处理请求体, delete可以没有请求体

    • post, 通过请求头中的content-type字段来区分格式

      • 表单格式: name=zhangsan&age=18
      • json格式: '{"name":"zhangsan", "age":18}'
  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/fiee/p/13732168.html
Copyright © 2011-2022 走看看