学前了解

wsgiref模块( web服务网关接口)

​ 1 socket代码帮你封装好了

​ 2 http数据自动帮你处理好了

​ 1.请求来的时候 帮你拆分http数据格式

​ 2.响应走的时候 有帮你封装成了符合http数据格式的数据

根据不同的功能拆封成不同的py文件

​ urls.py 路由与视图函数对应关系

​ views.py 处理后端业务逻辑的视图函数(视图函数不单单只是函数 也可以是类)

​ templates 专门存放html文件

​ 规律:只要你想加功能 只需要在urls.py中添加一条对应关系

​ 再去views.py写一个视图函数

动静态网页

​ 1.将后端获取到的时间传递给前端页面

​ 利用字符串的替换 实现数据传递

​ 2.将字典传递给前端页面 并且可以很方便的操作

​ 借助于jinja2模块实现模板的渲染

  1. from jinja2 import Template
  2. temp = Template(data)
  3. res = temp.render(user={'name':'jason'})

​ 模板渲染:利用模板语法 实现后端传递数据给前端html页面

​ 模板语法书写格式 就两种

​ 变量相关:{{}}

​ 逻辑相关:{%%}

HTTP协议

​ 超文本传输协议

​ 1.四大特性

​ 1.基于TCP/IP之上作用于应用层的协议

2.基于请求响应

​ 3.无状态

​ cookie,session,token,...

4.无连接

​ 长连接 websocket

​ 2.数据格式

​ 请求格式

​ 请求首行(请求方式 协议版本)

​ 请求头(一堆k:v键值对) 类似于开路先锋 提前告知对方一些必要的信息

​ \r\n

​ 请求体(get请求没有请求体)

​ 响应格式



​ 3.响应状态码

​ 1XX

​ 2XX

​ 3XX

​ 4XX

​ 5XX

​ 请求方式

​ get请求

​ 朝别人要数据(get请求没有请求体,get请求也可以携带参数)

post请求

​ 朝别人提交数据(用户登录)

django初步了解1

1.小白必会三板斧

  1. from django.shortcuts import render,HttpResponse,redirect
  2. HttpResponse # 返回字符串的
  3. render # 返回html页面
  4. redirect # 重定向

2.静态文件配置

  1. 静态文件
  2. 网站所用到的
  3. 自己写好js
  4. 自己写好css
  5. 第三方的框架 bootstrap fontwesome sweetalert
  6. 通常情况下 网站所用到的静态文件资源 统一都放在static文件夹下
  7. STATIC_URL = '/static/' # 是访问静态资源的接口前缀
  8. """只要你想访问静态资源 你就必须以static开头"""
  9. # 手动配置静态文件访问资源
  10. STATICFILES_DIRS = [
  11. os.path.join(BASE_DIR,'static'),
  12. os.path.join(BASE_DIR,'static1'),
  13. # os.path.join(BASE_DIR,'static2'),
  14. ]
  15. 接口前缀 动态解析
  16. {% load static %}
  17. <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
  18. <script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
  19. form表单 action参数可以写的形式
  20. 1.不写 默认朝当前地址提交
  21. 2.只写后缀/index/
  22. 3.写全路径
  23. form表单默认朝后端提交的方式 默认是get请求
  24. get请求携带参数的方式 是在url后面?
  25. url?username=admin&password=213213213213213
  26. 缺点
  27. 1.不安全
  28. 2.get请求携带的参数有大小限制(最大不能超过4KB左右)
  29. 前期你如果要提交post请求 你就去settings.py文件注释掉一个中间件
  30. MIDDLEWARE = [
  31. 'django.middleware.security.SecurityMiddleware',
  32. 'django.contrib.sessions.middleware.SessionMiddleware',
  33. 'django.middleware.common.CommonMiddleware',
  34. # 'django.middleware.csrf.CsrfViewMiddleware',
  35. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  36. 'django.contrib.messages.middleware.MessageMiddleware',
  37. 'django.middleware.clickjacking.XFrameOptionsMiddleware',
  38. ]

3.request对象及方法

  1. 前后端数据交互
  2. 如何获取请求方式
  3. 获取post请求携带的数据
  4. request.POST
  5. 获取get请求携带的数据
  6. request.GET
  7. getpost在后端获取用户数据的时候 规律是一样的
  8. <QueryDict: {'username': ['admin', 'tank'], 'password': ['123']}>
  9. tank <class 'str'>
  10. 123 <class 'str'>
  11. request.POST.get('username') 默认只取列列表的最后一个元素
  12. 如果你想将列表完整的取出 你必须用getlist()

4.pycharm连接数据库django连接数据库

  1. django连接MySQL
  2. 第一步配置文件中配置
  3. DATABASES = {
  4. 'default': {
  5. 'ENGINE': 'django.db.backends.mysql', # 指定数据库 MySQL postgreSQL
  6. 'NAME': 'day56', # 到底使用哪个库
  7. 'USER':'root',
  8. 'PASSWORD':'root',
  9. 'HOST':'127.0.0.1',
  10. 'PORT':3306,
  11. 'CHARSET':'utf8'
  12. }
  13. }
  14. 第二步
  15. django默认使用的是mysqldb连接数据库 但是该模块不支持了
  16. 所以你要告诉django不要用mysqldb该用pymysql连接
  17. 你可以在项目名下面的__init__.py也可以在应用名下面的__init__.py文件中指定
  18. import pymysql
  19. pymysql.install_as_MySQLdb()

5.django orm简介

  1. orm对象关系映射
  2. 数据库的表
  3. 对象 表的记录
  4. 对象获取属性 记录的某个字段对应的值
  5. 优点:能够让一个不会数据库操作的人 也能够简单快捷去使用数据库
  6. 缺点:由于封装程度太高 可能会导致程序的执行效率偏低
  7. 有时候 结合项目需求 可能需要你手写sql语句
  8. 注意事项
  9. 1.djangoorm不会自动帮你创建库,库需要你自己手动创建
  10. 表会自动帮你创建 你只需要书写符合django orm语法的代码即可
  11. 去应用下所在的models.py中书写类
  12. from django.db import models
  13. # Create your models here.
  14. class Userinfo(models.Model):
  15. # 设置id字段为userinfo表的主键 id int primary key auto_increment
  16. id = models.AutoField(primary_key=True) # 在django中 你可以不指定主键字段 django orm会自动给你当前表新建一个名为id的主键字段
  17. # 设置username字段 username varchar(64) CharField必须要指定max_length参数
  18. username = models.CharField(max_length=64) # 在django orm中 没有char字段 但是django 暴露给用户 可以自定义char字段
  19. # 设置password字段 password int
  20. password = models.IntegerField()
  21. ******************************数据库迁移(同步)命令***********************************
  22. python manage.py makemigrations # 不会创建表 仅仅是生成一个记录 将你当前的操作记录到一个小本本上(migrations文件夹)
  23. python manage.py migrate # 将你的orm语句真正的迁移到(同步)到数据库中
  24. 只要你在models.py中修改了跟数据库相关的代码 你就必须重新开始执行上面两条命令

django初步了解的更多相关文章

  1. django初步了解2

    目录 django初步了解2 表的字段增删改查 数据的增删改查 反向解析和分组 路由分发 名称空间 伪静态 虚拟环境 django初步了解2 表的字段增删改查 新增的字段 1.直接提供默认值 defa ...

  2. Django初步(一):安装和简单演示

    参考:Windows下安装Django:http://www.th7.cn/Program/Python/201305/136301.shtml

  3. django初步了解4

    django单表查询 必知必会13条 1.all() 查询所有 QuerySet res=models.Book.objects.all()#惰性查询 print(res) for i in res: ...

  4. django初步了解3

    目录 JsonResponse模块 form表单上传文件 FBV与CBV django settings源码分析及实际应用 模板语法 模板传值 模板过滤器 标签 if标签 for标签 with标签 自 ...

  5. Django初步完成:登录、注册、退出

    python环境:python2.7 开发工具:pycharm 项目名称:mysite5 app名称:online settings:映射app路径 INSTALLED_APPS = [ 'djang ...

  6. django初步--+urls解析

    1.静态文件配置: 你在浏览器中输入网址能够有响应的资源返回给你 是因为后端已经提前给你开设该资源的接口,也就意味着你所能 访问到的资源 都是人家事先定义好的. 2.django如何给用户开设资源接口 ...

  7. django初步了解(一)

    安装django pip3 install django==版本号 创建一个djangp项目 django-admin startproject 项目名 目录介绍: 运行django项目: pytho ...

  8. Django初步皮毛

    Django是一个用python编写的Web框架. #Django安装 pip install Django 然后是配置环境变量,将这目录添加到系统环境变量中: C:\Python33\Lib\sit ...

  9. Django初识

    web框架 Web应用框架有助于减轻网页开发时共通性活动的工作负荷,例如许多框架提供数据库访问接口.标准样板以及会话管理等,可提升代码的可再用性.简单地说,就是你用别人搭建好的舞台来做表演,用别人做好 ...

随机推荐

  1. 【java设计模式】-06原型模式

    原型模式简述 定义: 使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象 ,也就是通过复制现有对象实例产生新的对象,也就是所谓的"克隆" 实现方式: 1.实现Cl ...

  2. NFFM的原理与代码

    本篇深入分析郭大nffm的代码 TensorFlow计算图 计算图的构建 ones = tf.ones_like(emb_inp_v2) mask_a = tf.matrix_band_part(on ...

  3. 使用聚集索引和非聚集索引对MySQL分页查询的优化

    内容摘录来源:MSSQL123 ,lujun9972.github.io/blog/2018/03/13/如何编写bash-completion-script/ 一.先公布下结论: 1.如果分页排序字 ...

  4. Netfilter 之 钩子函数注册

    通过注册流程代码的分析,能够明确钩子函数的注册流程,理解存储钩子函数的数据结构,如下图(点击图片可查看原图): 废话不多说,开始分析: nf_hook_ops是注册的钩子函数的核心结构,字段含义如下所 ...

  5. dp,滚动数组优化

    51Nod1084矩阵取数问题 V2 题意: 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向上和向左 ...

  6. Python 串口通讯

    摘要: pyserial module: https://github.com/tbusf/pyserial Python使用pyserial进行串口通信:http://blog.csdn.net/l ...

  7. 用Python写一个将Python2代码转换成Python3代码的批处理工具

    之前写过一篇如何在windows操作系统上给.py文件添加一个快速处理的右键功能的文章:<一键将Python2代码自动转化为Python3>,作用就是为了将Python2的文件升级转换成P ...

  8. ios-tableViewcell展开与收缩动画处理

    [前言] 在使用华尔街见闻 app 时,看到它的 tableVeiw 上的 cell 具有很好的展开与收缩功能.于是自己想了一下实现,感觉应该挺简单的,于是心痒痒写个 demo 实现一波.华尔街见闻 ...

  9. Android的内部存储

    路径:/data/data/包名/ this.getCacheDir() = /data/data/com.example.qq/cache/ getFilesDir() = /data/data/c ...

  10. 反射中的 Method 的 getReadMethod 与 getWriteMethod 使用 【获取一个对象的所有属性字段名称和其对应的值】

    转: class反射(一),以及Method 的 getReadMethod 与 getWriteMethod 使用 2018年11月28日 17:27:42 zich77521 阅读数 788   ...