django的来一个orm的过程

举报
鱼酱 发表于 2022/01/07 00:02:00 2022/01/07
【摘要】 0.通用命令 #安装的所有包 pip list 12 1.安装python3 https://www.python.org/downloads/ 2.配置环境变量 C:\Python37-32 ...

0.通用命令

#安装的所有包
pip list

  
 
  • 1
  • 2

1.安装python3

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

2.配置环境变量

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


  
 
  • 1
  • 2
  • 3

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

windows平台

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

  
 
  • 1

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

linux平台

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

  
 
  • 1
  • 2

3.安装django

首先进入虚拟环境

pip install django
django-admin version

  
 
  • 1
  • 2

5.创建项目

django-admin startproject myprj
cd myprj

  
 
  • 1
  • 2

6.安装mysql包

pip install mysql-python

  
 
  • 1

在mysql中创建数据库

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

  
 
  • 1
  • 2
  • 3
  • 4

7.配置mysql

修改settings.py

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

demo

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

可以查看这个目录

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

  
 
  • 1

8.创建应用

-创建app

python  manage.py startapp booktest

  
 
  • 1
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
	'booktest',
]

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 使用数据库生成模型类(不好用)
python manage.py inspectdb > booktest/models.py

  
 
  • 1

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)


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
#生成迁移
manage.py makemigrations
#生成表
manage.py migrate

  
 
  • 1
  • 2
  • 3
  • 4

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

在这里插入图片描述

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

10.

文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。

原文链接:yujiang.blog.csdn.net/article/details/90631703

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。