zoukankan      html  css  js  c++  java
  • 【Django笔记三】Django2.0配置mysql模型

     一、环境版本信息:

           操作系统:windows10

           Django版本:2.0.5

           Python版本:3.6.4

           Mysql版本: 5.5.53   安装mysql

    二、安装Mysqlclient:

           1、为什么安装Mysqlclient:

                 Mysqlclient是MySQLdb连接库的一个分支,它修复了一些在MySQLdb连接路中存在的bug,并添加了对Python3的支持。Mysqlclient的底层是由C编写实现的,相比于PyMySQL,运行速度快一些。

           2、使用命令:pip install mysqlclient

                 

    三、修改配置文件settings.py

          DATABASES是设置MySQL的信息,NAME是数据库名,USER是用户名,PASSWORD是登录密码,HOST是localhost或者127.0.0.1,PORT是端口号(默认是3306)

    # Database
    # https://docs.djangoproject.com/en/2.0/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'test_django',
            'USER': 'root',
            'PASSWORD':'root',
            'HOST':'127.0.0.1',
            'PORT':'3306',
        }
    }

    四、修改在App文件夹下的models.py   

           用来创建表blog_users 字段blog_username 和blog_link,创建后它会自动创建id字段

    from django.db import models
    
    # Create your models here.
    class users(models.Model):
        blog_username = models.CharField(max_length=20)
        blog_link = models.CharField(max_length=50)

    五、在命令行中输入以下命令

    python manage.py migrate #执行迁移

          

         此时数据库会生成系统自定义的表如下图:

            

          接下来在命令行中依次输入:  

    python manage.py makemigrations App  #生成迁移
    python manage.py migrate App #执行迁移

         

         

         此时再在数据库中可以看到咱们自定义的表:app_users 插入一条数据如下图:

         

    六、修改views.py和index.html文件

    from django.shortcuts import render
    from App.models import users
    # Create your views here.
    
    
    def index(request):
        user = users.objects.get(id=1) # 找到id==1的数据
        context = {'user':user}
        return render(request, 'index.html', context)
    <!doctype html>
    <html lang="zh-CN">
    <head>
    <meta charset="utf-8">
    {% load static %}
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
    </head>
    <body >
    <p>博客昵称:{{ user.blog_username  }}</p>
    <p>博客链接:{{ user.blog_link  }}</p>
    </body>
    </html>

    七、开启服务 python manage.py runserver 默认端口8000

           

    八、注意事项

          若你将自己建的表例如:app_users删了想利用python manage.py migrate App重新创建该表会出现  django.db.utils.ProgrammingError: (1146, u"Table'' doesn't exist") 错误

          1、问题原因

               django在第一次迁移的时候新建表,后面再执行该命令都不会新建表,而是只检查字段等等的变化,而我们删除了这张表,django检查不到该字段就会出现错误。

          2、解决方案

               第一步:在该App文件夹下的migrations文件夹中保留前两个文件其余全删掉,例如:

                            

              第二步:将数据库 django_migrations这张表中的 app等于与应用名一样的数据删除 这里我的应用名是 App

                            

              第三部:再次执行命令

    python manage.py makemigrations App  #生成迁移
    python manage.py migrate App #执行迁移

        

          

  • 相关阅读:
    图解插入排序--直接插入排序
    在项目中代替DevExpress(一)
    java web servlet
    一元夺宝项目设计(上)
    一元夺宝项目设计(中)
    一元夺宝项目设计(下)
    ORM之四:调用入口与调用示例
    ORM之三:DbProvider与DbFactory
    ORM之二:核心接口与扩展操作
    ORM之一:适合我的ORM
  • 原文地址:https://www.cnblogs.com/chu03/p/9215512.html
Copyright © 2011-2022 走看看