码迷,mamicode.com
首页 > 其他好文 > 详细

Django---ORM操作

时间:2019-08-10 14:02:43      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:message   migrate   必须   collate   建表   ons   enc   username   import   

一、Django连接MySQL

1、创建数据库 (注意设置 数据的字符编码)

  由于Django自带的orm是data_first类型的ORM,使用前必须先创建数据库

  

create database db default character set utf8 collate utf8_general_ci;

 

 

 

2、修改project中的settings.py文件中设置  连接 MySQL数据库(Django默认使用的是sqllite数据库)

  

DATABASES = {
    default: {
    ENGINE: django.db.backends.mysql,
    NAME:dbname,
    USER: xxx,
    PASSWORD: xxx,
    HOST: localhost,
    PORT: 3306,
    }
}

 

 

 

3、修改project 中的__init__py 文件设置 Django默认连接MySQL的方式

 

import pymysql
pymysql.install_as_MySQLdb()

 此时运行程序,如果报错:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

 解决方法:

  1: 将django降到2.1.4版本(使用Django2.2版本会出现此问题,亲测可用)

  2:进入到python安装目录下:。。。/site-packages/django/db/backends/mysql的base.py文件,注释掉如下部分(35-36行):

if version < (1, 3, 3):
     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

    此时仍会会报错,报错信息如下:AttributeError: ‘str’ object has no attribute ‘decode

    找到operations.py文件(146行),将decode改为encode(146行):

    if query is not None:
        query = query.decode(errors=‘replace‘)
     return query


    改为
    if query is not None:
        query = query.encode(errors=‘replace‘)
     return query

 

4、在终端创建app

 

python manage.py startapp app01

 

 

 

 

5、在app内的models.py创建类

class UserInfo(models.Model):
    nid = models.BigAutoField(primary_key=True)
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)

 

6、setting.py注册app

INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    app01,            #末尾添加
]

 

 

7、创建数据表

终端运行:

python manage.py makemigrations

python manage.py migrate

 

 

 

 

二、modles.py创建表

 

Django---ORM操作

标签:message   migrate   必须   collate   建表   ons   enc   username   import   

原文地址:https://www.cnblogs.com/cky-2907183182/p/11329627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!