创建Django项目
django-admin startproject 项目名
启动Django项目
1.先切换到项目目录下
2.python manage.py runserver IP:端口号
创建应用
python.manage.py startapp 应用名
注意事项:1.创建的应用一定要去配置文件中注册---INSTALLED__APPS
2.使用pycharm创建项目时,会自动将app注册到配置文件中,但是只能写一个
静态文件配置
具体配置:STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
1.html文件默认放在templates文件夹下
2.js,css,图片,第三方框架等放在static文件夹下
3.静态文件动态解析:{% load static %},{% static '路径' %}
request对象方法
request.method:判断请求方式
request.POST:获取用户POST请求提交的数据
request.POST.get():获取最后一个元素
request.POST.getlist():获取list
request.GET:获取用户GET请求提交的数据
request.GET.get():获取最后一个元素
request.GET.getlist():获取list
链接数据库
1.注意驱动文件
2.使用其他数据库的时候需要配置:settings文件中修改一下DATABASES配置;在项目init文件中书写
import pymysql
pymysql.install_as_mysqldb
ORM
一、基本语法(类)
class User(models.Model):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=32)
password = models.IntegerField()
二、数据库迁移命令(只要修改了models.py中跟数据库相关的代码,就必须执行)
python manage.py makemigrations 将操作记录记录到小本本上(migrations文件夹)
python manage.py migrate 将操作真正同步到数据库中
三、当不定义主键字段的时候,ORM会自动创建一个名为ID的主键
info = models.CharField(max_length=32,verbose_name = '个人简介', null = True) 默认不为空
hobby = models.CharField(max_length=32,default = 'study') 默认值为study
四、增加数据
第一种:create_obj = models.User.objects.create(username = username, password = password)
第二种:user_obj = models.User(username = username, password = password)
user_obj.save()
五、查询数据
res = models.User.objects.filter(username = username) 得到的是一个queryset对象,列表套字典的格式
res.first() 推荐使用该方法获取值,而且filter括号内可以携带多个参数,并且是and关系
models.User.objects.all() 查询所有
models.User.objects.filter() 查询所有
六、修改数据
第一种:models.User.objects.filter(id = edit_id).update(username = username) 将查询出来的数据全部更新
第二种:通过修改对象的属性来修改数据
七、删除数据
models.User.objects.filter(id = edit_id).delete() 将查询出来的数据全部删除
八、创建表关系
1.先将基表创建出来,然后再添加外键字段
2.1.x版本,外键都是级联更新删除的
3.一对多(图书和出版社是一对多,外键字段在book)
book2publishes = models.ForeignKey(to = 'Publish') 默认就是和Publish主键字段做关联
4.多对多(图书和作者是多对多的关系,外键字段建在任意一方都可,但是推荐建在查询频率较高的一方),book2authors是一个虚拟字段,主要用来告诉ORM,书籍表和作者表是多对多的关系,让ORM自动创建第三张表
book2authors = models.ManyToMany(to = 'Author')
5.一对一(作者与作者详情是一对一的关系,外键建在任何一方都可,单是推荐建在查询频率较高的表)
author2detail = models.OneToOne(to = 'AuthorDetail')