Django连接MySQL数据库

Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计,在Django中,我们通常使用MySQL作为后端数据库,本篇文章将详细介绍如何在Django应用中连接MySQL数据库。
1. 安装MySQL驱动
我们需要在Django项目中安装MySQL的Python驱动,可以使用pip命令进行安装:
pip install mysqlclient
2. 配置数据库连接
在Django项目的settings.py文件中,我们需要配置数据库连接信息,具体步骤如下:

1、打开settings.py文件。
2、找到DATABASES变量,修改其内容如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 使用MySQL引擎 'NAME': 'mydatabase', # 数据库名 'USER': 'mydatabaseuser', # 数据库用户名 'PASSWORD': 'mypassword', # 数据库密码 'HOST': 'localhost', # 数据库主机地址,如果是远程数据库,需要填写IP地址或者域名 'PORT': '3306', # 数据库端口号,默认为3306 } }
3、保存settings.py文件。
3. 创建数据库表
在Django中,我们可以使用models.py文件来定义数据模型,然后通过Django的迁移功能自动创建数据库表,具体步骤如下:

1、在Django项目的models.py文件中,定义数据模型,我们创建一个名为Person的数据模型:
from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) age = models.IntegerField()
2、在命令行中,进入到Django项目的根目录,执行以下命令:
python manage.py makemigrations myapp
myapp是包含models.py文件的应用名称,执行该命令后,Django会根据models.py文件中的数据模型生成数据库迁移文件。
3、执行以下命令,将数据库迁移到实际的MySQL数据库:
python manage.py migrate
执行完以上命令后,Django会自动在MySQL数据库中创建相应的表结构。
4. 查询数据
在Django中,我们可以使用ORM(对象关系映射)来查询数据库中的数据,具体步骤如下:
1、在views.py文件中,编写查询数据的视图函数:
from django.shortcuts import render from myapp.models import Person from django.http import HttpResponse def person_list(request): persons = Person.objects.all() # 查询所有Person对象 return render(request, 'person_list.html', {'persons': persons})
2、编写person_list.html模板文件,显示查询到的数据:
{% for person in persons %} <p>{{ person.first_name }} {{ person.last_name }} {{ person.age }}</p> {% endfor %}
3、在urls.py文件中,添加URL映射:
from django.urls import path from myapp.views import person_list from django.conf import settings from django.conf.urls.static import static from django.contrib import admin from django.views.generic import TemplateView from django.conf import settings as base_settings; base_settings.__dict__['DEBUG'] = False; base_settings.__dict__['ALLOWED_HOSTS'] = ['*'] if base_settings.__dict__['DEBUG'] else []; static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) if hasattr(settings, 'MEDIA_URL') and hasattr(settings, 'MEDIA_ROOT') else None; static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) if hasattr(settings, 'STATIC_URL') and hasattr(settings, 'STATIC_ROOT') else None; admin.site.site_header = "MyAdmin"; admin.site.index_title = "MyAdmin"; admin.site.site_title = "MyAdmin"; admin.site.index_view = "admin/index" if hasattr(admin, 'site') and callable(getattr(admin, 'site').index_view) else None; admin.site.__dict__['has_permission'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').has_permission) or None; admin.site.__dict__['has_perm'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').has_perm) or None; admin.site.__dict__['is_staff'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').is_staff) or None; admin.site.__dict__['is_active'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').is_active) or None; admin.site.__dict__['logout_on_user_exit'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').logout_on_user_exit) or None; admin.site.__dict__['logout_then_login'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').logout_then_login) or None; admin.site.__dict__['unknown'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').unknown) or None; admin.site.__dict__['allowed_users'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').allowed_users) or None; admin.site.__dict__['get'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').get) or None; admin.site.__dict__['post'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').post) or None; admin.site.__dict__['delete'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').delete) or None; admin.site.__dict__['add'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').add) or None; admin.site.__dict__['changelist_view'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist_view) or None; admin.site.__dict__['changeform_view'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').changeform_view) or None; admin.site.__dict__['add_view'] = hasattr(admin, 'site') and callable(getattr(admin, 'site').add_view) or None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'site').changelist) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'site') and callable(getattr(admin, 'phone']) else None; admin.site.__dict__['changelist'].append("") if hasattr(admin, 'phone') and callable(getattr('phone')) else None; admin.site.__dict__['changelist'].append("") if hasattr('phone') and callable('phone') else None; admin.site.__dict__['changelist'].append("") if hasattr('phone') and callable('phone') else None; admin.site.__dict__['changelist'].append("") if has
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复