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:\python\lib\site-packages\django\db\backends\mysql\base.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
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。