DjangoORM

django命令行创建项目
django-admin startproject '项目名'
创建app
python manage.py startapp '应用名'
启动django
python manage.py runserver

保证django能正常运行的几个注意事项
1.保证你的计算机名不能是中文
2.一个pycharm窗口就对应一个项目(工程)
3.文件路径命名尽量不要用中文
4.启动django确保端口不能重复

app概念
一所大学有多个学院
一个项目有多个不同的功能模块(组)


新创建的app必须在settings配置文件中注册才能生效


django链接mysql
1.settings配置文件database
mysql,USER,PASSWORD,HOST,PORT,NAME
2.项目下面的__init__或者应用下的__init__文件均可,告诉django用pymysql链接数据库而不再使用默认的mysqldb
import pymysql
pymysql.install_as_MySQLdb()


静态文件配置
STATIC_URL = '/static/' # 开辟的接口
STATICFILES_DIRS = [
# 依次从上找对应的文件,都没有找到的话,才会报错
os.path.join(BASE_DIR,'static'),
os.path.join(BASE_DIR,'static1'),
os.path.join(BASE_DIR,'static2'),
]

ORM
对象关系映射

class User(models.Model)
# 主键可以不写,orm自动创建名为id的主键列
name = models.CharField(max_length=32)

数据库迁移命令
python manage.py makemigrations # 把你的更改记录记录到小本本
python manage.py migrate # 将你的改动操作同步到数据库
只要你动了models.py中类与表相关的东西,你就必须得重新执行上面的两条命令

模型表的增删改查
表字段的修改 改完之后执行两条命令
表字段的新增 新增之后执行两条命令
表字段的删除 注释之后执行两条命令(一般情况下是不会删库跑路的)


模型表数据的增删改查
查:
models.User.objects.all() # 查询到User表中所有的数据,执行结果是一个queryset对象
只要是queryset对象就可以点.query查看当前查询出来的queryset对象内部的sql语句
models.User.objects.get() # get拿出来的是数据对象本身,如果查询不存在直接报错
models.User.objects.filter() # filter拿出来是queryset对象,如果查询不存在不报错只返回空
# 注意 用filter查询出来不是数据对象本身 相当于[数据对象1,数据对象2,数据对象3]
# 获取数据对象本身
models.User.objects.filter().first() >>> models.User.objects.filter()[0]
# queryset虽然支持索引取值,但是索引不能为负数

删:
models.User.objects.filter().delete() # 将queryset中所有的数据对象都删除
data_obj = models.User.objects.filter()[0]
data_obj.delete()

增:
# 第一种创建方式
current_obj = models.User.objects.create(name=...,password=...) # 执行结果的返回值就是当前对象本身
current_obj.name

# 第二种
user_obj = models.User(name=...,password=...)
user_obj.save()

改:
models.User.objects.filter().first()

# 两种携带参数的方式
form表单的action携带参数
input框隐藏

# 两种修改数据的方式
# 利用queryset方法
models.User.objects.filter().update(name=...,password=...)
# 利用对象本身修改
user_obj = models.User.objects.filter().first()
user_obj.name = name
user_obj.save()

猜你喜欢

转载自www.cnblogs.com/pdun/p/10714664.html