Django-连接数据库

1. form表单提交数据的四个要素(前端)

  1. form标签必须要有action和method属性
  2. 所有获取用户输入的标签必须放在form表单中,必须要有name属性
  3. 必须要有submit按钮
  4.如果要上传文件 enctype="multipart/form-data",没有就不用加,上传文件以二进制的形式进行上传

  

2. Django 基础必会三件套

  from django.shortcuts import HttpResponse, render, redirect
  1. HttpResponse('OK') --> 把字符串的OK转成二进制,然后按照HTTP响应的格式要求返回
  2. render(request, 'login.html') --> 打开文件,读取内容,按照响应格式返回
  3. render(request, 'login.html', {"key": "value"}) --> 打开文件,读取内容,替换特殊符号,按照响应格式返回{{ key }}
  4. redirect('/index/') --> 在同网站不同地址间跳转(返回的是重定向的响应)
  5. redirect('https://www.luffycity.com') -> 让你的浏览器访问我指定的网址

  

3. request相关的属性

  所有和请求相关的数据都封装在这个request对象中
  1.request.method --> 当前这次请求的方法(GET/POST)
  2.request.GET --> 取到URL里面携带的参数
  3.request.POST --> 取到POST提交的数据(form表单提交的数据

  

4. Django的模板语言(HTML中的特殊符号)
 

 {{ 变量名 }}      {'name': '闷骚哥'}

  

5. 程序连mysql

  使用pymysql模块
  1. 导入pymysql模块
  2. 创建连接
  3. 获取执行命令的游标
  4. 用游标去执行SQL语句
  5. 获取SQL语句的执行结果
  6. 关闭游标
  7. 关闭连接

  

6. Django中ORM的使用 

  1. ORM的概念
    ORM     DB
    类      数据表
    属性      字段
    对象     数据行

  2. 用处
  1. 操作数据表
  2. 操作数据行


  3. 使用
  1. 手动创建一个数据库
    -> create database mysite;

  

  2. 告诉Django用pymysql替代Mysqldb

    在mysite下的__init__.py文件下进行配置   

    

   3. 安装Mysql驱动

  

   

  4. 告诉Django连哪个数据库

 

   在settings里进行配置
    DATABASES = {
         'default': {
            'ENGINE': 'django.db.backends.mysql', # 连接数据库的类型
            'NAME': 'mysite', # 数据库名
            'HOST': '127.0.0.1', # 数据库主机地址
            'PORT': 3306, # 数据库的端口
            'USER': 'root',
            'PASSWORD': '123',(根据自己创建数据的密码来填)}                  }

            }

  5. 用什么连数据库?

    利用第三方的包,比如第三方包:pymysql和MySQLdb
    告诉Django用pymysql模块代替默认的MySQLdb去连接MySQL数据库
    和settings.py同级的__init__.py文件,写上:
    import pymysql
    pymysql.install_as_MySQLdb()

  

  6. 在app/models.py的文件中创建类
    

  类必须继承models.Model

  


  7. 另个命令
 

   1. python manage.py makemigrations --> 把models.py的变更记录一下
    2. python manage.py migrate --> 把上面的变更记录翻译成SQL语句,去数据库执行

  

   

    8. 注意:执行 python manage.py makemigrations 报错

    # 报错位置
    File "D:pythonlibsite-packagesdjangodbackendsmysqlase.py", line 36, in <module>
    # 报错问题
    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
    解决方案
    第一步:点击base.py文件,报错位置找到这两行 注释掉

         再次执行命令python manage.py makemigrations   报错query = query.decode(errors='replace')<br><br>#

     报错问题AttributeError: 'str' object has no attribute 'decode'

    第二步:

    找到同级目录下operations.py文件将代码里面query.decode改成:query.encode

  

     



幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
原文地址:https://www.cnblogs.com/TodayWind/p/13218631.html