Django总结

  1. 创建项目

     django-admin startproject itemName
    
  2. 创建模块

     python manage.py startapp modelName
    
  3. setting配置

    1. 模块注册:INSTALLED_APPS

       INSTALLED_APPS = [
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
      
       # 自定义模块
       'user',
       'job',
       'article',
      
       # 跨域模块
       'corsheaders',
      

      ]

  4. 构建模型类:model.py

     # 构建映射模型
     class Job(models.Model):
    
         # id = models.AutoField(primary_key=True)  # 自增长的主键;可以不设置,会自动生成
         companyId = models.CharField(max_length=50, unique=True)  # 设置唯一约束,相同的companyId将添加不了
         job_name = models.CharField(max_length=50)
         companyName = models.CharField(max_length=50)
         salary = models.CharField(max_length=50)
         replayDate = models.CharField(max_length=50)
    
         # 指定或修改表名;不指定的话默认表名为:模块名_类名
         class Meta:
             db_table = "article_info"
    
         # 建立多对多关系的第二种方法,自动生成中间表;查询的时候比第一种方式方便一点点
         worked = models.ManyToManyField(User)
    
     # 建立多对多关系方法一: 这种方法的好处是可以控制字段  (要导入相应的model:User)
     class Workexperience(models.Model):
         workDated = models.DateField(auto_now_add=True, null=True)
         # 多对多本质上是两个相互的一对多
         yh = models.ForeignKey(to=User, to_field='tel', on_delete=True)
         kw = models.ForeignKey(to=Job, to_field='id', on_delete=True)
    
     # 在setting里设置你要映射到的数据库
    
  5. 然后在 setting 的 DATABASES 里设置 链接mysql数据库(将原来的注释掉)

     DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql',       # 使用mysql需要在当前环境里有pymysql包 : pip install pymysql
             'NAME': 'mydata',   # 数据库名
             'USER': 'root',
             'PASSWORD': '123456',   # 密码
             'HOST': '127.0.0.1',    # 访问的数据库服务器/ip地址
             'POST': '3306'          # 数据库端口号
             # 然后在主模块的 init.py 文件里使用链接
         }
     }
    
  6. 使用链接:在主模块的 init.py 文件里使用链接

     import pymysql
     pymysql.install_as_MySQLdb()
    
  7. 模型映射迁移:python manage.py makemigrations,在 migrations

    在该项目的terminal里设置映射迁移 python manage.py makemigrations,在 migrations里看到生成新的py文件,打开就是你将要映射的表信息

    每次修改表结构都要执行迁移,都会产生记录

  8. 执行迁移: python manage.py migrate 生成表

    注意 python manage.py makemigrations 会扫描所有的models模块,只要产生变化,就要进行模块映射迁移

    当要修改表结构(增加字段)必须要设置为允许为空或者给一个默认值;在models里增加字段

    当要删除某个字段,在models里将该字段注释;运行python manage.py makemigrations;会提示迁移变动并产生记录,运行python manage.py migrate;就成功了

    迁移记录是记录我们对数据库的操作,在数据库也有记录,如果添加字段失败,删掉两边新生成的记录使之恢复到没有错的样子就可以了,如果字段已经生成;要把字段也删掉

  9. Django生成表和反向生成Model

    根据model生成数据库表:
    python manage.py syncdb
    根据数据库表生成model:
    python manage.py inspectdb>models.py
    #注:
    该命令在PyDev上运行失败,只能在命令行执行。
    models.py 是随便取的名字
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值