create database test
;use test
;source D:/Demo.sql;
安装django: pip install Django==3.2.22
django-admin.exe
**安装数据库驱动程序:**使用mysql数据库,pip install pymysql
django版本文档下载: https://docs.djangoproject.com/zh-hans/4.2/
创建salary的项目,指定项目名称和项目目录: django-admin.exe startproject salary .
执行后项目目录结构:
--salary
:主目录,包含项目的各种配置,每一个文件都很重要
--manage.py
:就相当于django-admin.exe
,包含了项目需要的很多命令
--app1
:待创建
--app2
:待创建
指定数据库驱动:
在settings.py
的同级目录的__init__.py
中增加:
import pymysql
pymysql.install_as_MySQLdb()
创建应用程序APPemployee
:python manage.py startapp employee
settings.py
配置:
INSTALLED_APPS
中写入创建的employee
logging
。注意生产环境中,DEBUG=False
# https://docs.djangoproject.com/en/3.2/topics/logging/#configuring-logging创建employees
实体:
from django.db import models
class Employees(models.Model):
# 数据库表名,固定的,Django就是这,一个Meta类
class Meta:
db_table = "employees"
emp_no = models.IntegerField(primary_key=True, null=False)
birth_date = models.DateField(null=False)
first_name = models.CharField(max_length=14, null=False)
last_name = models.CharField(null=False, max_length=16)
gender = models.SmallIntegerField(null=False)
hire_date = models.DateField(null=False)
def __repr__(self):
return "" .format(self.emp_no, self.first_name, self.last_name)
生成迁移文件、创建表:
python manage.py makeemigrations
,执行后在APP目录下可以看到0001_initial.py
python manage.py migrate
迁移文件:第一次执行的时候生成0001号文件。第一次执行之后,如果models.py中的模型有修改,修改后重新执行迁移,则会在APP目录下创建一个补丁文件,代表有修改。
迁移还可以指定APP,仅对开发完成的APP做迁移:python manage.py migrate employee
迁移前,一定要在setting.py
的INSTALLED_APPS
中注册APP。
对于执行过迁移的app,如果表建错了,想删了重新执行迁移,只删除创建的表没用。因为app的迁移记录保存在了django_migrations
表中,如果表中这个app已经执行了0001号迁移,就不会执行。需要在django_migrations
把app对于的迁移记录删除,然后再执行``python manage.py migrate app_name`
简单查询:
#一-coding: utf-8-*-
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'salary.settings')
django.setup(set_prefix=False)
from employee.models import Employee # 这一行必须在`os.environ.setdefault`之后,先把配置、环境变量准备好后才能import
emps = Employee.objects.all() # 懒查询,只有后面对查询结构有引用时,才会驱动真正的查询
print(emps) # 查询集
Django ORM查询总结博客:
https://blog.csdn.net/luofeng_/article/details/133895120?spm=1001.2014.3001.5501