Django ORM创建与简单应用CRUD

创建ORM

Django默认使用SQLite数据库,要操作mysql,要利用pymysql

1.要创建数据库

2.配置settings.py

DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'xxxxx',
    'USER': 'root',
    'PASSWORD': '',
    'HOST': '',
    'PORT': '3306',
    }
}

3.在__init__加载pymysql

python -m django --version ---3.0.3

加载可能出现错误,注释掉判断的语句就ok

import pymysql
# pymysql.version_info = (1, 3, 13, "final", 0)
pymysql.install_as_MySQLdb()

4.app下models.py

from django.db import models

class UserGroup(models.Model):
    #默认定义id,自增加,为主键
    title=models.CharField(max_length=32)

class UserInfo(models.Model):
    id = models.BigAutoField(primary_key=True)
    user = models.CharField(max_length=32)
    pwd = models.CharField(max_length=64)
    age=models.IntegerField(default=18)
    #ug_id
    ug=models.ForeignKey('UserGroup',null=True,on_delete=models.CASCADE)

5.注册app

python2.0之后版本,在创建app时默认注册app,如没有自行添加

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app.apps.AppConfig',
]

6.创建数据库

cmd下:

python manage.py makemigrations
python manage.py migrate

7.在models.py可以自行新增,修改字段

 

数据相关的CURD操作

在视图函数views.py下

from django.http import HttpResponse
from django.shortcuts import render

#数据库相关操作
def index(request):
    from app import models
    #add
    models.UserGroup.objects.create(title='技术部')

    #find (id__lt==1)小于 __gt大于
    group_list=models.UserGroup.objects.all()
    group_list=models.UserGroup.objects.filter(id=1)

    for row in group_list:
        print(row.id,row.title)

    #delete
    models.UserGroup.objects.filter(id=2).delete()

    #update
    models.UserGroup.objects.filter(id=2).update(title='研发部')

    return HttpResponse('test')
发布了26 篇原创文章 · 获赞 0 · 访问量 588

猜你喜欢

转载自blog.csdn.net/kkLeung/article/details/104688189