当前位置:网站首页>[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
边栏推荐
- 第十四次试验
- 位操作==c语言2
- 虚数j的物理意义
- 根据热门面试题分析Android事件分发机制(二)---事件冲突分析处理
- 2020ccpc Weihai J - Steins; Game (SG function, linear basis)
- Bit operation ==c language 2
- Using keras in tensorflow to build convolutional neural network
- The new activity of "the arrival of twelve constellations and goddesses" was launched
- There is a problem using Chinese characters in SQL. Who has encountered it? Such as value & lt; & gt;` None`
- Addition, deletion, modification and query of ThinkPHP database
猜你喜欢
Applet popup half angle mask layer
Agile course training
CSDN salary increase technology - learn about the use of several common logic controllers of JMeter
Basic use of JMeter to proficiency (I) creation and testing of the first task thread from installation
使用BigDecimal的坑
ORM--查询类型,关联查询
ORM--逻辑关系与&或;排序操作,更新记录操作,删除记录操作
官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展
Use 3 in data modeling σ Eliminate outliers for data cleaning
AI从感知走向智能认知
随机推荐
Pytest learning - dayone
网上可以开炒股账户吗安全吗
AI从感知走向智能认知
2016 CCPC Hangzhou Onsite
Applet sliding, clicking and switching simple UI
【无标题】
C# Socke 服务器,客户端,UDP
高数_第1章空间解析几何与向量代数_向量的数量积
Internship log - day07
字节跳动 Kitex 在森马电商场景的落地实践
sql 里面使用中文字符判断有问题,哪位遇到过?比如value<>`无`
Introduction to uboot
Why does the starting service report an error when installing MySQL? (operating system Windows)
2020 Zhejiang Provincial Games
China's first electronic audio category "Yamano electronic audio" digital collection is on sale!
2020浙江省赛
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)
Or in SQL, what scenarios will lead to full table scanning
Huffman encoded compressed file
Performance optimization record of the company's product "yunzhujia"