django的来一个orm的过程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/hiwoshixiaoyu/article/details/90631703

0.通用命令

#安装的所有包
pip list

1.安装python3

https://www.python.org/downloads/

2.配置环境变量

C:\Python37-32
C:\Python37-32\Scripts

3.安装虚拟环境(python3.3以上版本)

windows平台

python3 -m venv .         #在当前目录下创建虚拟环境

进入当前Scripts目录下,执行activate.bat,如下图表示激活成功

linux平台

python3 -m venv .         #在当前目录下创建虚拟环境
source bin/activate

3.安装django

首先进入虚拟环境

pip install django
django-admin version

5.创建项目

django-admin startproject myprj
cd myprj

6.安装mysql包

pip install mysql-python

在mysql中创建数据库

shou databases
create database myprj charset =utf8
use myprj
show tables

7.配置mysql

修改settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test2',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '数据库服务器ip,本地可以使用localhost',
        'PORT': '端口,默认为3306',
    }
}

demo

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

可以查看这个目录

C:\Python37-32\Lib\site-packages\django\db\backends

8.创建应用

-创建app

python  manage.py startapp booktest
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
	'booktest',
]
  • 使用数据库生成模型类(不好用)
python manage.py inspectdb > booktest/models.py

9.创建一个模型

修改booktest\model.py

扫描二维码关注公众号,回复: 7616781 查看本文章
from django.db import models

class BookInfoManager(models.Manager):
    def get_queryset(self):
        return super(BookInfoManager,self).get_queryset().filter(isDelete=False)
    def create(self,btitle,bpub_date):
        b=BookInfo()
        b.btitle=btitle
        b.bpub_date=bpub_date
        b.bread=0
        b.bcommet=0
        b.isDelete=False
        return b

class BookInfo(models.Model):
    btitle=models.CharField(max_length=20)
    bpub_date=models.DateTimeField(db_column='pub_date')
    bread=models.IntegerField(default=0)
    bcommet=models.IntegerField(null=False)
    isDelete=models.BooleanField(default=False)
    class Meta:
        db_table='bookinfo'
    books1=models.Manager()
    books2=BookInfoManager()
    @classmethod
    def create(cls,btitle,bpub_date):
        b=BookInfo()
        b.btitle=btitle
        b.bpub_date=bpub_date
        b.bread=0
        b.bcommet=0
        b.isDelete=False
        return b

class HeroInfo(models.Model):
    hname=models.CharField(max_length=10)
    hgender=models.BooleanField(default=True)
    hcontent=models.CharField(max_length=1000)
    isDelete=models.BooleanField(default=False)
    book=models.ForeignKey(BookInfo)

#生成迁移
manage.py makemigrations
#生成表
manage.py migrate

我们生成的表
在这里插入图片描述

在这里插入图片描述

hero.book.id是获取英雄对象
hero.book_id是获取英雄对象的bookid关联着bookinfo表的id

10.

猜你喜欢

转载自blog.csdn.net/hiwoshixiaoyu/article/details/90631703
今日推荐