当前位置:网站首页>[ORM framework]
[ORM framework]
2022-07-07 10:07:00 【chuntian_ tester】
Django ORM Framework operation database
Django ORM frame
Definition
- Map classes to data tables
- Through classes and objects, you can manipulate the data in its corresponding data table (CRUD)
step
Configure the database connection information
- Create databases and users
- Configuration database
- install mysqlclientIn the subapplication of models.py Define model classes in
- Generally in sub applications models.py Define model classes in
- Model classes must inherit Model Class or Model Subclasses of
- Define attributes in the model class ( It has to be for Field Subclass ), Equivalent to fields in the data table
- CharField–> varchar
- IntegerField–> integer
- BooleanField–>bool
class Animal(models.Model):
name = models.CharField(max_length=32)
age = models.IntegerField()
gender = models.BooleanField()
class Meta:
managed = True
Examples
1. Define model classes
class Projects(models.Model):
""" max_length: Must pass parameters verbose_name: When rendering forms , There will be a Chinese description below : Project name ; The background management site will also add a description to the current field help_text: stay api The interface document will be used as Chinese description information unique=True: Represents setting unique constraints on a field , The default is False default: Specify default TextField(): Support long text blank=True: Allow empty string ,DRF Valid only when deserializing input null = Tru: Allow for null,DRF Valid only when deserializing input DateTimeField Appoint auto_now_add=True, When creating a record, the time will be automatically created as the value of this field , Subsequent updates will not change this value DateTimeField Appoint auto_now=True, When updating a record , The time of updating the record will be automatically taken as the value of this field """
name = models.CharField(max_length=50,
verbose_name=' Project name ',
help_text=' Project name ',
unique=True)
leader = models.CharField(max_length=10,
verbose_name=' Project leader ',
help_text=' Project leader ')
# default=xxx Specify default
is_execute = models.BooleanField(verbose_name=' Whether to start the project ',
help_text=' Whether to start the project ',
default=False)
# TextField() Support long text
# blank=True, Allow empty string
# null = True, Allow for null
desc = models.TextField(verbose_name=' Project description information ',
help_text=' Project description information ',
blank=True, null=True, default='')
# DateTimeField Appoint auto_now_add=True, When creating a record, the time will be automatically created as the value of this field , Subsequent updates will not change this value
create_time = models.DateTimeField(auto_now_add=True,
verbose_name=' Creation time ',
help_text=' Creation time ')
# DateTimeField Appoint auto_now=True, When updating a record , The time of updating the record will be automatically taken as the value of this field
update_time = models.DateTimeField(auto_now=True,
verbose_name=' Update time ',
help_text=' Update time ')
# Modify the meta information of the model class
class Meta:
# # Whether it is managed
# managed = True
# db_table: Specified table name
db_table = 'tb_projects'
2. transfer
terminal Execute the command in the project root :
# Migrate all sub applications
python manage.py makemigrations
python manage.py migrate
# Migrate the specified sub application
python manage.py makemigrations Subapplication name
python manage.py migrate Subapplication name
The default name of the generated data table is : Subapplication name _ The model class name is lowercase
# View the generated migration script native sql sentence
python manage.py sqlmigrate Subapplication name (projects) Migration script name (0002_projects)
- Complete the database addition, deletion, modification and query operations through classes and objects
ORM Object composition
a. database : You need to manually create the database in advance
b. Data sheet : And ORM In the frame models.py Model classes in correspond one by one
c. Field : Class attributes in model classes
d. Record : Similar to multiple instances of model classes
Global profile settings.py Middle configuration database
ORM Modify the existing field names in the table
When we modify a field name or add a new field in the online database , Before deleting fields , All existing data should be backed up , Can be cold standby , It can be hot standby ;
- Cold standby :mysqldumps Orders can be made for cold standby
ORM Modify existing fields :
Modify the field name in the model class ( Generally, it can't be modified id Primary key )
Re execute the migration script
- python manage.py makemigrations Subapplication name - python manage.py migrate Subapplication name
边栏推荐
猜你喜欢
CentOS installs JDK1.8 and mysql5 and 8 (the same command 58 in the second installation mode is common, opening access rights and changing passwords)
20排位赛3
[untitled]
Official media attention! The list of top 100 domestic digital collection platforms was released, and the industry accelerated the healthy development of compliance
ORM--查询类型,关联查询
Pit using BigDecimal
Bean operation domain and life cycle
Memory ==c language 1
ORM--数据库增删改查操作逻辑
虚数j的物理意义
随机推荐
In addition to the objective reasons for overtime, what else is worth thinking about?
Selenium+bs4 parsing +mysql capturing BiliBili Tarot data
Some thoughts on the testing work in the process of R & D
Enterprise practice | construction of banking operation and maintenance index system under complex business relations
Finally, there is no need to change a line of code! Shardingsphere native driver comes out
PostgreSQL reports an error when creating a trigger,
arcgis操作:dwg数据转为shp数据
Analyze Android event distribution mechanism according to popular interview questions (II) -- event conflict analysis and handling
小程序弹出半角遮罩层
The landing practice of ByteDance kitex in SEMA e-commerce scene
Application of C # XML
ORM模型--数据记录的创建操作,查询操作
2020 Zhejiang Provincial Games
web3.0系列之分布式存储IPFS
ES类和对象、原型
【无标题】
AI从感知走向智能认知
【原创】程序员团队管理的核心是什么?
高斯消元
Please ask me a question. I started a synchronization task with SQL client. From Mysql to ADB, the historical data has been synchronized normally