django操作mysql
Posted 北方卧龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django操作mysql相关的知识,希望对你有一定的参考价值。
连接mysql
1、安装pymysql
操作指令 : pymsql: pip install pymysql
2、导入库
在项目目录下的__init__.py文件中导入pymysql模块
加入以下两行代码:
import pymysql
pymysql.install_as_MySQLdb()
3、在setting中的databases中配置mysql的连接
‘ENGINE‘: ‘django.db.backends.mysql‘, # 设置驱动
‘NAME‘:库名, # 设置数据库名
‘USER‘:‘root‘, # 设置用户名
‘PASSWORD‘:密码, # 设置密码
‘HOST‘:主机地址, # 设置主机地址
‘PORT‘:3306, # 设置端口号
4、执行迁移
python manage.py makemigrations
python manage.py migrate
5、连接mysql数据库
点击database --- + -----data source ----数据库类型(如:mysql) ----- 设置 账号,密码,主机,(注意: 如果对mysql设置远程连接,
要使用远程连接的账号密码) ----test connect ---- ok 即可
操作mysql
1、创建一个表
需要在model模块中创建一个类,该类继承models.Model
例:
-
class Person(models.Model):
-
p_name = models.CharField(max_length=20, null=False, unique=True)
-
p_age = models.IntegerField(default=10)
-
p_sex = models.BooleanField(default=True)
表名默认为 应用名_类名
注:在右侧detabase处可以看到自己创建的表
注:在创建的类中添加
class Meta:
db_table = "表名" 修改表名
可以修改创建的表的名字
例:
-
class Person(models.Model):
-
p_name = models.CharField(max_length=20, null=False, unique=True)
-
p_age = models.IntegerField(default=10)
-
p_sex = models.BooleanField(default=True)
-
-
class Meta:
-
db_table = "Person"
修改完成后,执行迁移
若要修改表的字段名,则更改定义的类中的属性之后迁移即可
2、增加一个数据
步骤:
①.创建一个对象
②.设置属性
③.保存数据
④.对象名.save()
例:
-
from django.shortcuts import render
-
from day02.models import Person
-
import random
-
# Create your views here.
-
-
def insertPerson(request):
-
# 创建一个对象
-
person = Person()
-
-
# 设置属性
-
person.p_name = "王" + str(random.randint(1, 100))
-
person.p_age = random.randint(1, 100)
-
person.p_sex = random.randint(0, 1)
-
-
# 保存数据
-
person.save()
设置url
在项目的urls中添加 url("应用名",include("应用名.urls"))
注:需import 应用名
-
from django.conf.urls import url, include
-
from django.contrib import admin
-
import day02
-
-
urlpatterns = [
-
url(r‘^admin/‘, admin.site.urls),
-
url(r‘^day02/‘, include(day02.urls)),
-
]
注:须在应用的目录中创建一个urls.py文件,可以将项目中的urls中的内容复制过去
-
from django.conf.urls import url
-
from django.contrib import admin
-
-
-
urlpatterns = [
-
url(r‘^admin/‘, admin.site.urls),
-
-
]
在应用中的urls中添加路径
-
from django.conf.urls import url
-
from django.contrib import admin
-
from day02 import views
-
-
urlpatterns = [
-
url(r‘^admin/‘, admin.site.urls),
-
url(r‘insertPerson‘, views.insertPerson),
-
-
]
激活服务器,在浏览器中输入地址即可成功添加数据
查看插入的表
3、删除一个数据
用变量获取匹配到的数据
格式:变量.delete() # 删除数据
-
def delPerson(request):
-
person = Person.objects.filter(p_name="王66").first() # 用变量person接收获取到的对象
-
person.delete()
-
return HttpResponse("删除成功")
在应用的urls中添加路径
url(r‘delPerson‘,views.delPerson)
激活服务器,并操作,
成功删除
4、修改数据
格式:对象名.属性名 = 值
对象名.save()
例:首先插入一条数据
修改数据的属性值
-
def updatePerson(request):
-
person = Person.objects.filter(p_name="王30").first()
-
person.p_name = "王小明"
-
person.p_age = 18
-
person.p_sex = 0
-
person.save()
-
return HttpResponse("修改成功")
在urls中添加路径
url(r‘updatePerson‘, views.updatePerson),
运行服务器
修改成功
5、查询数据
格式: 类名.objects.方法
例:多插入几条数据
在应用的views中添加代码
-
def queryPerson(request):
-
persons = Person.objects.all()
-
return render(request, "Persons.html", context={"persons":persons})
在templates中创建Persons.html文件
-
-
<html lang="en">
-
<head>
-
<meta charset="UTF-8">
-
<title>Title</title>
-
</head>
-
<body>
-
-
<ul>
-
{% for person in persons %}
-
<li>name:{{ person.p_name }} age:{{ person.p_age }}</li>
-
{% endfor %}
-
-
</ul>
-
-
</body>
-
</html>
在urls中添加路径
启动服务器
成功查询表格中的数据
注:这里只介绍了查询所有数据的方法
以上是关于django操作mysql的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段