Django大致流程

静态文件相关配置

  每次在Django项目下新建的应用,都需要去配置文件settings中进行注册,才能生效。例如新建了一个app01应用。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'app01'  # 简写
    'app01.apps.App01Config'  # 全称
    ]

  HTML文件默认全部放在templates文件夹中。对于前端已经写好了的文件,我们只是拿过来使用,那么这些文件就可以称为静态文件。静态文件可以是bootstrap一类的前端框架,也可以是css,js,图片。全部存放在全部存放在static文件夹下。

  注意:启动Django项目时,一定要确保一个端口号只有一个Django项目在占用,不然的话,会容易造成bug。 

  用户可以访问的资源都在url中,只有URL中开设了相关的资源才能访问到 ,如果访问未开设的就会报错。后端的资源一般都需要手动指定是否暴露给用户。

静态文件配置

静态文件接口前缀的动态解析

Django重启机制

  Django是支持自动重启代码的,只需多刷新几次页面,但是有时候重启机制比较慢。

  机制:实时监测文件代码完成,只要有变化,就会自动重启。

  缺点:自动重启的时间具有不确定性。比如说你的代码还没有写完,这时候自动重启代码,然后就会发生报错。

form表单

  form表单默认的是get请求,我们可以通过method改为post请求,在改成post请求之后,需要去settings配置文件中注释掉一个中间件。

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',  #被注释的代码行
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

  form表单提交数据目的地由action

    1.不写的情况下 默认往当前地址提交

    2.还可以写后缀/index/(将项目常用这种)

    3.还可以写全路径

获取前端数据

  对数据的处理,不单单只有wsgiref模块,django后端也进行了大量的数据处理。

# request.method获取请求方法:
  GET方式:
    request.GET获取前端get提交的数据(就类似于是一个大字典)
  取值
    request.GET.get('username')   # 虽然value是一个列表,但是默认只取列表最后一个元素。不建议使用中括号的形式取值。
    request.GET.getlist('hobby')  # 如果想直接把列表全部取出

  POST方式:     request.POST获取前端post提交的数据(就类似于是一个大字典)   取值     request.POST.get('username') # 虽然value是一个列表,但是默认只取列表最后一个元素。不建议使用中括号的形式取值     request.POST.getlist('hobby') # 如果想直接把列表全部取出

Django链接数据库

  Django一般默认使用的是自带的sqlite数据库。如果你想要让它使用其他的数据库,需要在settings配置文件中配置。

  在项目名下的init文件或者是应用名下的init文件中,告诉django不要使用默认的mysqldb连接mysql,而是使用pymysql。

 

 

 

Django中的orm

  ORM对象关系映射

    表 -----> 类

    一条条记录 -----> 对象

    字段对应的值  -----> 对象的属性

  首先需要在应用下的models.py中书写模型类

class User(models.Model):
# 将id字段设置为User表主键字段 在django orm中 你可以不写主键字典 django会默认给你的表创建一个名为id的主键字段
# id = models.AutoField(primary_key=True) # 一旦你自己指定了主键字段 那么django就不会自动再帮你创建了
username = models.CharField(max_length=32) # username varchar(32) CharField必须要指定max_length参数
password = models.IntegerField() # password int

#需要执行数据库迁移(同步)命令
python3 manage.py makemigrations # 仅仅是在小本本上(migrations文件夹)记录数据库的修改 并不会直接操作数据
python3 manage.py migrate # 将数据库修改记录 真正同步到数据库
注意:只要动了models中跟数据库相关的代码,就必须重新执行上面的两条命令 缺一不可

增删改查

1.先连接数据库展示所有用户信息
    1.获取模型表中所有的数据
        models.User.objects.all()  # 结果也是querySet对象    只要是queryset对象 就可以点query查看内部sql语句
    2.筛选相应的数据
        1.直接获取对象的
            models.User.objects.get(**kwargs)  # 条件不存在  立刻报错  不推荐使用
        2.获取querySet对象的(
            1.querySet对象你可以把它看成是一个列表 里面放的是一个个的数据对象
            2.querySet对象支持索引取值和切片操作 但是不支持负数 也不推荐你使用
            建议你使用封装好的方法
            )
            queryset = models.User.objects.filter(**kwargs)  # 括号内多个参数是and的关系
            user_obj = querySet.first()  # 没有也不会报错  直接返回None
2.新增用户
    1.利用create()方法
        该方法会将当前创建的数据对象返回出来
        current_user_obj = models.User.objects.create(**{...})
    2.利用对象的绑定方法
        user_obj = models.User(**kwargs)
        user_obj.save()

3.修改用户
    1.利用queryset对象的update批量修改的方法
        models.User.objects.filter(age = 18).update(**kwargs)  # 会将queryset中所有的数据全部修改
    
    2.利用对象修改属性的方法
        user_obj = models.User.objects.filter(**kwargs).first()
        user_obj.username = 'jason'
        user_obj.save()  # 该方法 会将数据库中所有的字段全部重写修改一遍 效率极低 不推荐使用

4.删除用户(不会真正删除数据  通常都是给数据加一个表示是否删除的字段)
    1.利用queryset对象delete批量删除
        models.User.objects.filter(age = 18).delete()  # 会将queryset中所有的数据全部删除

 

posted @ 2019-09-16 21:16  kuanglinfeng  阅读(230)  评论(0编辑  收藏  举报