django的來乙個orm的過程

2021-09-23 20:17:06 字數 2915 閱讀 5910

#安裝的所有包

pip list

c:\python37-32

c:\python37-32\scripts

windows平台

python3 -m venv .         #在當前目錄下建立虛擬環境
進入當前scripts目錄下,執行activate.bat,如下圖表示啟用成功

linux平台

python3 -m venv .         #在當前目錄下建立虛擬環境

source bin/activate

首先進入虛擬環境

pip install django

django-admin version

django-admin startproject myprj

cd myprj

pip install mysql-python
在mysql中建立資料庫

shou databases

create database myprj charset =utf8

use myprj

show tables

修改settings.py

databases = 

}

demo

databases = 

}

可以檢視這個目錄

c:\python37-32\lib\site-packages\django\db\backends
'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
修改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

Django3 ORM配置Mysql踩過的坑

本小白踩過的坑,請正在自學django3的同學耐心看完 首先在settings.py下設定 databases from django.db import models create your models here.class account models.model username model...

來討論下django中表關聯的乙個問題。

在django中,如果乙個表與另乙個表是manytomany關係,則可以在乙個表中使用manytomany關係將兩個表關聯起來,這樣django會自動生成乙個關聯表來。現在有乙個問題,如果希望在這個關聯表中新增額外的字段,該怎麼操作?考慮乙個實際的問題,例如乙個表,user,乙個表group,這兩個...

想寫乙個ORM的框架

其實也是受公司框架啟發,公司寫bean都是自動生成,只要在乙個web應用中輸入包名和表名,就能自動生成bean,其中一種bean是普通的pojo,是資料庫表的一些字段,加上setget方法,另外一些就是增刪改查的table類。以上雖然看不到如何實現,但是無非也就是讀取databasemeta和res...