Django进阶

Posted guanzhicheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django进阶相关的知识,希望对你有一定的参考价值。

Django进阶

补充知识点:

  • form表单必须要有action和method标签
  • 输入要用input标签,必须有name属性
  • 提交必须用submit属性,其他的不行

    1. 基础必会三件套
      from django.shortcuts import HttpResponse, render, redirect

      • HttpResponse("响应体内容")
      • render(request, "login.html",{“k”: "v"}) --> 打开一个文件,把文件的内容读取出来
      • redirect("具体的网址") --> 回复一个让浏览器请求我指定网址的响应
    2. form表单提交数据,注意事项:
      1. 是form不是from,必须设置action和method这两个属性
      2. 获取用户输入的表单标签都要放在form里面,必须要有name属性
      3. 必须要有submit按钮
    3. Django如何获取form表单post过来的数据
      1. request.POST --> 所有数据的大字典
        request.POST.get("pwd")
      2. request.method --> 得到的是请求的方法(大写的) - GET/POST
    4. GET和POST
      1. 什么时候用GET?
        1. 获取一个网页的时候
        2. 搜索引擎检索 /web?query=新垣结衣
      2. 什么时候用POST?
        向服务端提交数据 (form表单提交数据)
    5. Django中的APP概念
      1. 创建APP命令
        python3 manage.py startapp app名字
      2. 告诉Django你新建的app叫啥
        settings.py里面,INSTALLED_APPS这个配置项里面加上你的app
    6. ORM
      1. ORM概念和优劣势
      2. ORM的本质
        对象 关系 映射

        类 <--> 数据表
        对象 <--> 数据行
        属性 <--> 字段
      3. Django中ORM的使用
        1. 手动新建一个数据库
        2. 告诉Django连接哪个数据库
          settings.py里面配置数据库连接信息:

          数据库相关的配置项

          DATABASES = {
          ‘default‘: {
          ‘ENGINE‘: ‘django.db.backends.mysql‘, # 告诉Django使用MySQL的那套代码
          ‘NAME‘: ‘day63‘, # 数据库的名字
          ‘HOST‘: ‘127.0.0.1‘, # 主机
          ‘PORT‘: 3306, # 端口
          ‘USER‘: ‘root‘, # 用户名
          ‘PASSWORD‘: ‘123‘ # 密码
          }
          }
        3. 告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL
          在和settings.py同目录下的 init.py文件中做配置
          import pymysql
          pymysql.install_as_MySQLdb()

        4. 在app下面的models.py文件中 定义 类
          必须要继承models.Model
          class Publisher(models.Model):
          id = models.AutoField(primary_key=True) # 自增的主键
          name = models.CharField(max_length=64) # varchar(64)
        5. 两条命令
          1. python3 manage.py makemigrations --> 把models.py里面的改动登记到小本本上
          2. python3 manage.py migrate --> 将登记的改动翻译成SQL语句,到数据库中执行
  1. 新建Django项目的步骤:
    1. 创建项目(APP)
    2. 创建数据库和配置数据库
    3. 配置templates和静态文件相关
    4. 注释掉 settings.py中 csrf那一行
  2. Django项目真正的业务逻辑
    1. 输入 127.0.0.1:8000/publisher_list/ --> 返回一个页面,页面上将数据库中所有的出版社要展示出来
  3. 今日内容
    1. 出版社的删除

      怎么知道用户点击删除的时候删除的是哪一条记录
      - id用来在数据库中唯一确定一条记录

      127.0.0.1:8000/delete_publisher/?id=2

    2. 出版社的编辑
      设计 URL
      127.0.0.1:8000/edit_publisher/?id=2

    3. 书籍的增删改查
      ORM中的外键关联
      publisher = models.ForeignKey(to=Publisher) # 外键关联Publisher这张表

      book_obj.publisher --> 和我这本书关联的出版社对象
      book_obj.publisher_id --> 和我这本书关联的出版社的id值,也就是数据库中真正存的字段值

      1. 查和增































以上是关于Django进阶的主要内容,如果未能解决你的问题,请参考以下文章

Django进阶

Django入门进阶与项目实战

Django 进阶篇

Django进阶篇

Django进阶

1.2Django 视图与网址__进阶