初识django项目
1.创建django项目
django-admin startproject mysite #创建了一个名为"mysite"的Django 项目
2.创建应用
python manage.py startapp blog
3.启动项目
python manage.py runserver 8080
python manage.py runserver 127.0.0.1:8080 #本机就不用写ip地址了 如果连端口都没写,默认是本机的8000端口
4.settings.py
模板文件配置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'template')],
...
}
]
静态文件配置:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
app注册:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 'blog',
'blog.apps.BlogConfig'
]
ORM
Django之ORM
ORM:object relationship mapping对象关系映射。
操作数据库的映射类,不用写sql语句操作数据库了。
ORM解决的主要问题是对象和关系的映射。它通常将一个类和一张表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。
ORM提供了对数据库的映射,不用直接编写SQL代码,只需操作对象就能对数据库操作数据。
1.创建一个mysql数据库
2.在setting中配置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #引擎
'NAME': 'fororm', #数据库名称
'HOST': '127.0.0.1', #数据库IP
'PORT': 3306, #数据库端口
'USER': 'root', #数据库用户名
'PASSWORD': '****' #数据库密码
}
}
3.使用pymysql模块连接mysql数据库
写在与setting同级目录的__init__.py中
import pymysql #mysqlclient 连接mysql数据库的python库
pymysql.version_info = (1, 4, 13, "final", 0) #指定pymysql的版本
pymysql.install_as_MySQLdb() # 使用pymysql(python3)代替mysqldb(python2)连接数据库
4.写对应关系,在app下的models.py中写类
class User(models.Model):
username = models.CharField(max_length=32) #username varchar(32)
password = models.CharField(max_length=32) #password varchar(32)
5.执行数据库迁移的命令
python manage.py makemigrations #记录下models.py的变更记录
python manage.py migrate #变更记录同步到数据库
6.orm操作:
# ret = models.User.objects.get(username = user,) #找不到就报错,找到多个也报错
ret = models.User.objects.filter(username=user, password = pwd) #对象列表
orm基本操作
# 增
#方法一
models.Tb1.objects.create(c1='xx', c2='oo') # 增加一条数据,可以接受字典类型数据 **kwargs
#方法二
obj = models.Tb1(c1='xx', c2='oo')
obj.save()
# 查
models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议)
models.Tb1.objects.all() # 获取全部
models.Tb1.objects.filter(name='seven') # 获取指定条件的数据
models.Tb1.objects.exclude(name='seven') # 去除指定条件的数据
# 删
models.Tb1.objects.filter(name='seven').delete() # 删除指定条件的数据
obj = models.Tb1.objects.filter(name='seven').first()
obj.delete()
# 改
models.Tb1.objects.filter(name='seven').update(gender='0') # 将指定条件的数据更新,均支持 **kwargs
obj = models.Tb1.objects.get(id=1)
obj.c1 = '111'
obj.save() # 修改单条数据