Django入门到实战(二)连接MySQL数据库

Django 专栏收录该内容
2 篇文章 0 订阅

一、Django连接MySQL数据库

注意,本教程是建立在Django入门到实战(一)文件的基础上

1. 下载mysqlclient

pip install mysqlclient

很多教程是用pymysql,但据说Django并不正式支持PyMySQL。Django建议通过mysqlclient使用MySQL,所以这里我以mysqlclient为例。

2. 在项目配置文件settings.py中找到DATABASES配置,加入代码如下

注意:Django对数据库版本有要求,Django3.x版本不支持MySQL5.x版本

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
         'NAME': 'django-test',  # 使用的数据库的名字
        'USER': 'root',  # 连接mysql的用户名
        'PASSWORD': '123456',  # 用户对应的密码
        'HOST': '127.0.0.1',  # 指定mysql数据库所在电脑ip
        'PORT': 3306,  # 指定端口
    }
}

3.在项目根目录(可以看到manage.py那一层)执行如下

python manage.py migrate

这个 migrate 命令检查 INSTALLED_APPS 设置,为其中的每个应用创建需要的数据表,至于具体会创建什么,这取决于你的 mysite/settings.py 设置文件和每个应用的数据库迁移文件

控制台输出如下
在这里插入图片描述
可以看到,我们的数据库中自动创建了项目启动所需要的表
在这里插入图片描述
编辑 models.py 文件,改变模型。
运行 python manage.py makemigrations 为模型的改变生成迁移文件。
运行 python manage.py migrate 来应用数据库迁移。

二、创建超级用户

  1. 创建超级用户
py manage.py createsuperuser

输入用户名,邮箱,密码显示Superuser created successfully.完成创建
2. 执行python manage.py runserver并访问 http://127.0.0.1:8000/admin/进入管理员登录界面,并输入刚刚创建的超级用户,可以进入管理界面
在这里插入图片描述

三、编写DJango通用视图(Django’s generic views )绑定HTML

class IndexView(generic.ListView):
    template_name = 'polls/index.html'
    context_object_name = 'latest_question_list'

    def get_queryset(self):
        """Return the last five published questions."""
        return Question.objects.order_by('-pub_date')[:5]


class DetailView(generic.DetailView):
# 通过model属性绑定模块
    model = Question
#通过template_name绑定HTML
    template_name = 'polls/detail.html'

ListView 和 DetailView 。这两个视图分别抽象“显示一个对象列表”和“显示一个特定类型对象的详细信息页面”这两种概念。

通用视图 DetailView 使用一个叫做 /_detail.html 的模板。在我们的例子中,它将使用 “polls/question_detail.html” 模板。template_name 属性是用来告诉 Django 使用一个指定的模板名字,而不是自动生成的默认名字。 我们也为 results 列表视图指定了 template_name —— 这确保 results 视图和 detail 视图在渲染时具有不同的外观,即使它们在后台都是同一个 DetailView 。

类似地,ListView 使用一个叫做 /_list.html 的默认模板;我们使用 template_name 来告诉 ListView 使用我们创建的已经存在的 “polls/index.html” 模板。

  • 61
    点赞
  • 66
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值