-
创建项目
django-admin startproject itemName
-
创建模块
python manage.py startapp modelName
-
setting配置
-
模块注册: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',
]
-
-
构建模型类: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里设置你要映射到的数据库
-
然后在 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 文件里使用链接 } }
-
使用链接:在主模块的 init.py 文件里使用链接
import pymysql pymysql.install_as_MySQLdb()
-
模型映射迁移:python manage.py makemigrations,在 migrations
在该项目的terminal里设置映射迁移 python manage.py makemigrations,在 migrations里看到生成新的py文件,打开就是你将要映射的表信息
每次修改表结构都要执行迁移,都会产生记录
-
执行迁移: python manage.py migrate 生成表
注意 python manage.py makemigrations 会扫描所有的models模块,只要产生变化,就要进行模块映射迁移
当要修改表结构(增加字段)必须要设置为允许为空或者给一个默认值;在models里增加字段
当要删除某个字段,在models里将该字段注释;运行python manage.py makemigrations;会提示迁移变动并产生记录,运行python manage.py migrate;就成功了
迁移记录是记录我们对数据库的操作,在数据库也有记录,如果添加字段失败,删掉两边新生成的记录使之恢复到没有错的样子就可以了,如果字段已经生成;要把字段也删掉
-
Django生成表和反向生成Model
根据model生成数据库表: python manage.py syncdb 根据数据库表生成model: python manage.py inspectdb>models.py #注: 该命令在PyDev上运行失败,只能在命令行执行。 models.py 是随便取的名字
Django总结
最新推荐文章于 2024-05-02 18:13:09 发布