当前位置: 移动技术网 > IT编程>脚本编程>Python > python_Django05

python_Django05

2020年07月20日  | 移动技术网IT编程  | 我要评论
连接mysql 的驱动mysqlclient- python 2, 3 都能直接使用- 致命缺点:对 mysql 安装有要求,必须指定位置存在配置文件python-mysql- python 2 支持很好- python 3 不支持pymysql- python 2, 3 都支持- 它还可以伪装成前面的库(在项目下的 init.py 文件里添加import pymysqlpymysql.install_as_MySQLdb())django shell集成了

连接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

  1. 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)
  1. 生成迁移文件,在终端中输入:
python manage.py makemigrations
  1. 执行迁移文件,在终端输入:
python manage.py migrate
  1. 在 urls.py 中配置路由:
    url(r'^get/', views.get_grade),
    url(r'^getstudents/', views.get_students)
  1. 在 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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网