django+mysql的使用示例

下面我将为您详细讲解“Django + MySQL的使用示例”的完整攻略,包含两条示例说明。

示例一:连接MySQL数据库

1. 环境准备

首先,需要安装以下软件:
- Python
- Django
- MySQL

2. 创建Django项目

使用以下命令创建一个名为mysite的Django项目:

django-admin startproject mysite

3. 创建Django应用程序

通过以下命令创建一个名为myapp的Django应用程序:

python manage.py startapp myapp

4. 修改settings.py文件

在mysite/settings.py文件中添加以下内容,配置所使用的MySQL数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',          # 数据库名称
        'USER': 'myuser',        # 数据库用户名
        'PASSWORD': 'mypass',    # 数据库密码
        'HOST': 'localhost',     # 数据库地址
        'PORT': '3306',          # 端口号
        'OPTIONS': {
            'charset': 'utf8mb4',    # 数据库编码方式
        },
    }
}

5. 创建模型

在myapp/models.py文件中添加以下内容,定义一个名为Person的模型:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()
    email = models.EmailField()

6. 创建数据表

使用以下命令创建名为myapp_person的数据表:

python manage.py makemigrations myapp
python manage.py migrate

7. 插入数据

使用以下Python代码插入数据:

from myapp.models import Person

p = Person(name='Alice', age=20, email='alice@example.com')
p.save()

8. 查询数据

使用以下Python代码查询数据:

from myapp.models import Person

persons = Person.objects.all()

for person in persons:
    print(person.name, person.age, person.email)

至此,完成了连接MySQL数据库的Django示例。

示例二:使用MySQL数据库缓存视图

1. 环境准备

首先,需要安装以下软件:
- Python
- Django
- MySQL

2. 创建Django项目

与示例一相同,使用以下命令创建一个名为mysite的Django项目:

django-admin startproject mysite

3. 创建Django应用程序

与示例一相同,使用以下命令创建一个名为myapp的Django应用程序:

python manage.py startapp myapp

4. 修改settings.py文件

在mysite/settings.py文件中添加以下内容,配置所使用的MySQL数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',          # 数据库名称
        'USER': 'myuser',        # 数据库用户名
        'PASSWORD': 'mypass',    # 数据库密码
        'HOST': 'localhost',     # 数据库地址
        'PORT': '3306',          # 端口号
        'OPTIONS': {
            'charset': 'utf8mb4',    # 数据库编码方式
        },
    },

    # 缓存使用的数据库
    'cache': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mycache',       # 缓存数据库名称
        'USER': 'myuser',        # 缓存数据库用户名
        'PASSWORD': 'mypass',    # 缓存数据库密码
        'HOST': 'localhost',     # 缓存数据库地址
        'PORT': '3306',          # 缓存数据库端口号
        'OPTIONS': {
            'charset': 'utf8mb4',    # 缓存数据库编码方式
        },
    }
}

# 配置缓存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'cache_table',    # 缓存表名称
        'OPTIONS': {
            'MAX_ENTRIES': 50000,      # 最大缓存数
            'CULL_FREQUENCY': 3,       # 缓存清理频率
        },
    },
    'db': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'cache_table',    # 缓存表名称
        'OPTIONS': {
            'MAX_ENTRIES': 50000,      # 最大缓存数
            'CULL_FREQUENCY': 3,       # 缓存清理频率
        },
    }
}

5. 编写视图

在myapp/views.py文件中添加以下内容,定义一个名为hello的视图:

from django.shortcuts import render
from django.views.decorators.cache import cache_page

@cache_page(60 * 15, cache='default')    # 缓存15分钟
def hello(request):
    return render(request, 'hello.html')

6. 编写模板

在myapp/templates/hello.html文件中添加以下内容,用于展示数据:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World</h1>
    <p>{{ content }}</p>
</body>
</html>

7. 配置缓存表

使用以下命令创建表,用于存储缓存数据:

python manage.py createcachetable cache_table

8. 运行项目

使用以下命令运行项目:

python manage.py runserver

在浏览器中访问http://127.0.0.1:8000/hello,即可看到“Hello World”的输出。在第一次访问后,缓存会被保存在MySQL数据库中。再次访问时,将从缓存中获取数据,而不是重新生成数据。

至此,完成了使用MySQL数据库缓存视图的Django示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django+mysql的使用示例 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Python后台开发Django会话控制的实现

    下面我将为您详细讲解“Python后台开发Django会话控制的实现”的完整攻略。 一、会话控制基础 会话控制是指在Web应用程序中,对每个独立的用户来说,保持他们的数据在服务器上。会话技术主要是通过在服务器端创建一个唯一的会话标识符(session ID),将客户端的请求和服务器端的响应相对应起来,以保证在一个状态中。 在Django中,我们可以通过使用s…

    Django 2023年5月16日
    00
  • django过滤器,日期格式化

    过滤器相关: 一、形式:小写{{ name | lower }} 二、串联:先转义文本到HTML,再转换每行到   标签{{ my_text|escape|linebreaks }} 三、过滤器的参数显示前30个字{{ bio | truncatewords:”30″ }} 格式化{{ pub_date | date:”F j, Y” }} 过滤器列表{{ …

    Django 2023年4月13日
    00
  • JSON和Django内置序列化

    JSON 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSO…

    2023年4月9日
    00
  • django有哪些好处和优点

    Django是一个用于Web应用程序开发的高级Python框架。它具有以下好处和优点: 1. 快速开发 Django 提供了一系列迅速完成 Web 应用程序开发的工具。Django 的模板语言和自动化管理工具可以帮助开发者快速地建立并部署 Web 应用程序。此外,Django 还包含了许多自带的模块,可以快速解决常见的问题,例如用户认证、数据库操作、URL …

    Django 2023年5月15日
    00
  • Apache上部署Django步骤详细介绍

    关于“Apache上部署Django步骤详细介绍”的攻略,我将给出以下完整的步骤,其中包含两条示例说明。 环境要求 在部署Django应用之前,需要确保已安装以下环境: Apache服务器 mod_wsgi 步骤一:创建Django项目 在部署Django应用前,首先需要先创建一个Django项目。可以使用django-admin工具创建一个名为myproj…

    Django 2023年5月15日
    00
  • Django权限控制进阶

    一、一级菜单的排序 我们用字典存放菜单信息,而字典是无序的,当一级菜单过多时可能会出现乱序情况,因此需要给一级菜单排序 1.给一级菜单表的model中加一个weight权重的字段 ,权重越大越靠前 weight = models.IntegerField(default=1, verbose_name=’权重’) 2.应用有序字典存放菜单信息 引用: fro…

    Django 2023年4月12日
    00
  • django之csrf_exempt解决跨域请求的问题

    一:   from django.views.decorators.csrf import csrf_exempt # 获取微信返回的code信息 @csrf_exempt def wechat_auth(req): if req.method == ‘POST’: code = req.POST.get(‘code’) data_info = get_ac…

    Django 2023年4月12日
    00
  • python django day 3 页面,自动 跳转,参数传递

    zqxt_views/urls.pypath(”, calc_views.index, name=’home’), calc/views.pydef index(request): return render(request, ‘home.html’) calc/templates/home.html<!DOCTYPE html><htm…

    Django 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部