前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年01月 Python教学课程 41-Django框架之Mysql数据库连接

【愚公系列】2022年01月 Python教学课程 41-Django框架之Mysql数据库连接

作者头像
愚公搬代码
发布2022-12-01 10:02:49
2740
发布2022-12-01 10:02:49
举报
文章被收录于专栏:历史专栏

文章目录


一、修改数据库默认配置

在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库。

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

使用MySQL数据库首先需要安装驱动程序

代码语言:javascript
复制
pip install PyMySQL

在Django的工程同名子目录的__init__.py文件中添加如下语句

代码语言:javascript
复制
import pymysql

pymysql.install_as_MySQLdb()

作用是让Django的ORM能以mysqldb的方式来调用PyMySQL。

修改DATABASES配置信息

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',  # 数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': 'mysql',  # 数据库用户密码
        'NAME': 'book'  # 数据库名字
    }
}

二、相关案例

代码语言:javascript
复制
from django.db import models

# Create your models here.
class User(models.Model):
    uid = models.CharField(primary_key=True, max_length=30)
    homeurl = models.CharField(max_length=45)
    sumvisit = models.IntegerField()
    credit = models.IntegerField()
    grade = models.IntegerField()
    rank = models.IntegerField()
    fans = models.IntegerField()
    original = models.IntegerField()
    reprint = models.IntegerField()
    trans = models.IntegerField()
    comment = models.IntegerField()
    blogcnt = models.IntegerField()
    # 在Python2中用__unicode__代替__str__
    def __str__(self):
        return self.uid

class Blog(models.Model):
    uid = models.CharField(max_length=30)
    title = models.CharField(max_length=200)
    url = models.CharField(primary_key=True, max_length=30, null=False)
    viewcnt = models.IntegerField()

    # 在Python2中用__unicode__代替__str__
    def __str__(self):
        return self.title
代码语言:javascript
复制
#业务逻辑层
from django.http import HttpResponse
from django.shortcuts import render, render_to_response

#注:每个响应对应一个函数,函数必须返回一个响应
from blog import models

def blogs(request):
    # return HttpResponse("Hello world ! ")
    # article = models.Blog.objects.get(pk='41078855')
    # return render(request, 'blog/index.html', {"article": articles})
	#获取全部博客信息
articles = models.Blog.objects.all()
	#返回至前端渲染
return render_to_response("blog/index.html",locals()) #必须用这个return

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CSDN</title>
</head>
<body>
<!--<h1>{{ article.title }}</h1>-->
<!--<h3>{{ article.viewcnt }}</h3>-->
<body>
<p>博文信息</p>
{% for article in articles %}
<p>{{article.title}}&nbsp&nbsp&nbsp:&nbsp&nbsp&nbsp{{article.viewcnt}}</p>
<br>
{% endfor %}
</body>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、修改数据库默认配置
  • 二、相关案例
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档