Django uses the MySQL database processes

Django uses the MySQL database processes

  1. Manually create a MySQL database

  2. Configuration database

    ENGINE   MySQL
    NAME 数据库的名字
    HOST    ip 
    PORT    3306
    USER    用户名
    PASSWORD  密码
  3. In the same directory with the settings in __init__.pythe write code:

    import pymysql
    pymysql.install_as_MySQLdb()
  4. Write models:

    form django.db import models 
    class Publisher(models.Model):
     name = models.CharField(max_length=32)
    
  5. To perform the migration command

    python  manage.py  makemigrations  # 检查已经注册的APP下面的models.py的变更情况
    python manage.py migrate   # 执行迁移 
  6. SNAKE

    Object-relational mapping

    Map:

    Class _> table

    Objects _> rows (records)

    Properties _> field

    ORM can do:

    1. Make changes to the data
    2. On the table to make changes

    ORM operations

    Inquire

    from app01 import models 
    
    models.Publisher.objects.all()  #查询所有的数据  QuerySet  对象列表 
    models.Publisher.objects.get(name='xxx') 
                     #查询一条数据  只能查有且唯一的数据
    models.Publisher.objects.filter(name='xxx') 
                     #查询所有满足条件的数据 对象列表 

    New

    obj = models.Publisher.objects.create(name='xxxx')
    
    obj = models.Publisher(name='xxxx')
    obj.save()  # 保存到数据库

    delete

    models.Publisher.objects.filter(pk=pk).delete()   # 批量删除
    models.Publisher.objects.get(pk=pk).delete() # 单条数据的删除

    Update

    models.Publisher.objects.filter(pk=pk).update(name='xx')  # 批量更新
    
    obj = models.Publisher.objects.get(pk=pk)
    obj.name = 'xxxx'
    obj.save()  # 保存到数据库

Foreign key

Many relationship

class Book(models.Model):
    name = models.CharField(max_length=32)
    pub = models.ForeignKey('Publisher', on_delete=models.CASCADE)
  
 
    """
    on_delete 在2.0版本之后是必填的
    on_delete= 
        models.CASCADE  级联删除
        PROTECT   保护
        SET(1)    
        SET_DEFAULT  设置为默认值设置为某一个值
        SET_NULL   设置为空
        DO_NOTHING 什么都不变
    """
    

Inquire

all_books = models.Book.objects.all()
    
for book in all_books:
    print(book)
    print(book.id)
    print(book.pk)
    print(book.name)
    print(book.pub)  # 所关联的出版社对象        对象.外键
    print(book.pub_id)  # 所关联的出版社对象的id   对象.外键_id

New

models.Book.objects.create(name=book_name,
                           pub=models.Publisher.objects.get(pk=pub_id))
obj = models.Book.objects.create(name=book_name, pub_id=pub_id)

edit

book_obj.name = book_name
book_obj.pub_id = pub_id
# book_obj.pub  =  出版社的对象
book_obj.save()
models.Book.objects.filter(pk=pk).update(name=book_name,pub_id=pub_id)

Guess you like

Origin www.cnblogs.com/-xct/p/12051321.html