django的来一个orm的过程

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

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小鱼酱

用心写好每一篇博客

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值