zoukankan      html  css  js  c++  java
  • 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
    

      

         



    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    Oracle死锁
    Oracle forall bulk collect批量数据更新
    Oracle组合索引与回表
    查看Oracle执行计划
    Oracle 用户、角色、权限(系统权限、对象权限)的数据字典表
    Oracle计算两个时间戳相差秒数,精确到毫秒
    关于Oracle的疑问
    Oracle update和order by
    Oracle Connect by与递归with
    关于Oracle表连接
  • 原文地址:https://www.cnblogs.com/TodayWind/p/13218631.html
Copyright © 2011-2022 走看看