连接mysql 的驱动
-
mysqlclient
- python 2, 3 都能直接使用
- 致命缺点:对 mysql 安装有要求,必须指定位置存在配置文件 -
python-mysql
- python 2 支持很好
- python 3 不支持 -
pymysql
- python 2, 3 都支持
- 它还可以伪装成前面的库(
在项目下的 init.py 文件里添加
import pymysql
pymysql.install_as_MySQLdb()
)
配置 settings.py 中的 DATABASES :
ENGINE
NAME
USER
PASSWORD
HOST
PORT
然后就可以连接 mysql
django shell
集成了 python 环境的 shell 终端
通常在终端中做一些调试工作
例如(
from App.models import Student
students = Student.objects.all()
for student in students:
… print(student.s_name)
…
)
带外键的数据库数据的查询
班级表 Grade
学生表 Student
- models.py 中创建表:
class Grade(models.Model):
g_name = models.CharField(max_length=32)
class Student(models.Model):
s_name = models.CharField(max_length=16)
s_grade = models.ForeignKey(Grade)
- 生成迁移文件,在终端中输入:
python manage.py makemigrations
- 执行迁移文件,在终端输入:
python manage.py migrate
- 在 urls.py 中配置路由:
url(r'^get/', views.get_grade),
url(r'^getstudents/', views.get_students)
- 在 views.py 中:
# 查询学生的班级
def get_grade(request):
student = Student.objects.get(pk=1)
grade = student.s_grade
return HttpResponse("Grade %s" % grade.g_name)
# 查询班级里的所有学生姓名
def get_students(request):
grade = Grade.objects.get(pk=1)
students = grade.student_set.all()
context = {
'students': students,
}
return render(request, 'student_list.html', context=context)
# get_students 对应的 html 页面
<ul>
{% for student in students %}
<li>{{ student.s_name }}</li>
{% endfor %}
</ul>
本文地址:https://blog.csdn.net/weixin_44490267/article/details/107428217
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论