一、静态文件

(一)配置html文件

  1. 默认情况下,所有的html文件都放在templates文件夹下

  2. 配置文件夹路径'DIRS': [os.path.join(BASE_DIR, 'templates')]

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]

(二)什么是静态文件

  1. 网站所使用的到的提前写好的css、js、第三方的前端模块、图片等修饰html文件的都叫做静态资源

  2. 默认情况下网站所用到的静态文件资源全部会放在static文件夹下

    通常情况下static文件夹内部还会再建其他文件夹:

    1. css文件夹
    2. js文件夹
    3. font文件夹
    4. img文件夹
    5. Bootstrap
    6. fontawesome

(三)静态文件配置

django中需要手动创建静态文件存放的文件夹

STATIC_URL = '/static/'  # 访问静态资源接口前缀,通常情况下接口前缀的名字也叫static
# 手动配置静态文件访问资源
STATICFILES_DIRS = [  # 静态资源所在的文件夹路径
    os.path.join(BASE_DIR,'static') # 将static文件下的资源暴露给用户
]

(四)静态文件动态绑定

{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.css'%}">
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.js' %}"></script>

(五)form表单POST请求配置

  1. get请求可以携带参数

    http://127.0.0.1:8000/login/?username=wick&password=123

    特点:url?xxx=xxx&yyy=yyy

    1. 携带的数据不安全
    2. 携带的数据大小有限制,最大好像在4kb左右
    3. 通常携带不安全的数据
  2. action

    1. 不写,默认向当前地址提交
    2. 只写后缀,/index
    3. 写全路径
  3. 提交post请求返回403

    需要配置文件中注释一行

    # 中间件
    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',
    ]
  4. django后端的视图函数默认处理get请求,无论是get还是post请求,都会执行视图函数

二、request方法初识

(一)request.method

获取请求方式,纯大写的字符串

(二)request.POST

  1. 获取用户提交的post请求数据

  2. 获取数据
    1. request.POST.get():默认获取最后一个元素
    2. request.POST.getlist():

(三)request.GET

  1. 获取用户提交的get请求携带的参数

  2. 获取数据
    1. request.GET.get():默认获取最后一个元素
    2. request.GET.getlist():

三、django连接MySQL

(一)配置数据库

settings.py文件中设置DATABASES参数:

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  # 指定数据库类型
            'NAME': 'day49',  # 指定库的名字
            'USER':'root',  # 注意 键必须是全大写
            'PASSWORD':'123qwe',
            'HOST':'127.0.0.1',
            'PORT':3306,
            'CHARSET':'utf8'
        }
    }

(二)配置连接模块

django默认使用mysqldb模块连接,需要手动配置文件使用pymysql模块

  1. 项目名下的init文件
  2. 文件名下的init文件
# 上面的init文件中设置(无论哪一个都行,只要设置一个就可以了)
import  pymysql
pymysql.install_as_MySQLdb()

四、django ORM简介

(一)ORM

对象关系映射

  1. 类映射表
  2. 对象映射数据
  3. 对象.属性映射字段对应的值

(二)优缺点

  1. 优点

    让不会数据库操作的人也能够简单的去从操作数据

  2. 缺点

    封装程度太高,有时候会出现查询速率偏低的问题

所以工作中,简单的用orm,复杂的,追求速度的则手动书写sql语句

(三)配置orm

  1. 书写模型类

    应用下model.py中书写模型类

  2. 一个django项目对应一个数据库

(四)数据库迁移(同步)命令

只要models中和数据库相关的代码修改了,就要重新执行下面命令

  1. python3 manage.py makemigrations

    记录数据库的修改

  2. python3 manage.py migrate

    将修改操作同步到数据库

五、模型表字段的增删改查

(一)字段的修改

直接修改models中的模型类代码,再执行两条迁移命令

# 方式1 设置默认值
email = models.EmailField(default='123.qq.com')
# 方式2 允许字段为空
phone = models.BigIntegerField(null=True)
# 直接在提示中给默认值
gender =models.CharField(max_length=32)

(二)字段的删除

直接注释或删除对应的字段,然后再执行迁移命令(谨慎使用)

六、模型表数据的增删改查

(一)增

create方法会有一个返回值,返回值就是当前被创建的对象本身

user_obj = mpdels.User.objects.create(username=username,password=password)
print(user_obj,user_obj.username,user_obj.password)

(二)删

  1. delete:会将filter查询出来的列表中所有的对象全部删除
  2. 一般情况下不会使用,会使用标记删除
models.User.objects.filter(id=delete_id).delete()

(三)改

update:会将filter查询出来的列表中的所有对象全部更新,

models.User.objects.filter(id=edit_id).update(username=username)

models.User.objects.filter(id=edit_id).first().update(username=username)  # 报错

(四)查

  1. filter括号内可以放多个关键字参数,关键字参数之间是and关系,返回的是一个“列表”
  2. all:查询所有
data = models.User.objects.filter(username=username)
user_list = models.User.objects.all()
# 相当于 models.User.objects.filter()

(day50)二、文件配置、ORM的更多相关文章

  1. mysql之存储引擎和文件配置

    (查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...

  2. (day53)五、模型层(ORM)、settings文件配置

    目录 一.settings配置 (一)测试文件配置 (二)查看对应sql语句 二.模型表数据的增删改查 (一)创建数据 (1)create方法 (2)利用对象的绑定方法 (二)修改数据 (1)利用qu ...

  3. Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点)

    Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点) 一丶Django的静态文件配置 #we ...

  4. [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]

    [Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...

  5. Django基础二静态文件和ORM

    Django基础二静态文件和ORM 目录 Django基础二静态文件和ORM 1. 静态文件 1.1 静态文件基本配置: 1.2 静态文件进阶配置 2. request参数 3. Django配置数据 ...

  6. HttpResponse,render,redirect,静态文件配置,request对象方法,pycharm连接MySQL,django连接MySQL,django ORM

    HttpResponse 主要用于返回字符串类型的数据 def index(request): return HttpResponse('index页面') 在页面中就会显示 index页面 rend ...

  7. 基于python的接口测试框架设计(二)配置一些参数及文件

    基于python的接口测试框架设计(二)配置一些参数及文件 我这里需要基于我的项目配置的主要是登陆参数.以及baseURL ,把这些放在单独的文件里  毕竟导入的时候方便了一些 首先是url 图略 建 ...

  8. Django框架(二)-- 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get

    一.app 在Django中,APP可以用以下类比 大学 --------------------项目 计算机学院------------app01 土木学院 ------------ app02 1 ...

  9. Django框架(二)—— 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get

    目录 app注册.模板配置.静态文件配置.数据库连接配置post和get 一.app 二.模板配置 三.静态文件配置 四.数据库连接配置 五.get请求和post请求 六.新手三件套 七.登录功能案例 ...

随机推荐

  1. React 中this.setStat是批量执行的, 它发现做三次是多余的,所以只执行一次

    16==> this.setStat是批量执行的 它发现做三次是多余的,所以只执行一次 import React, { Component } from "react"; e ...

  2. Less(5)

    考查点:双查询报错注入 1.先判断注入类型 (1)首先看到要求,要求传一个ID参数,并且要求是数字型的:?id=1 (2)再输入?id=1' 显示报错,报错多了一个单引号 (3)再输入?id=1'' ...

  3. C++ class外的 >> 重载,输入流,重载示例。不应该定义类内的>>重载

    #include <iostream> // overloading "operator >> " outside class // >> 应该 ...

  4. LG4158 「SCOI2009」粉刷匠 线性DP

    问题描述 LG4158 题解 设\(opt[i][j][k]\)代表到\((i,k)\)刷了\(j\)次的方案数. 一开始DP顺序有点问题,调了很长时间. 务必考虑清楚DP顺序问题 \(\mathrm ...

  5. cairosvg使用过程中需要注意的问题

    在使用pygal的过程中,图片默认保存的是svg格式,如果需要生成本地的图片需要进行一些配置.下面是在摸索时的一些流程: 1.查看pygal的函数,dir(pygal.bar),发现其支持保存为png ...

  6. golang数据结构之双链表

    目录结构: doubleLink.go package link import ( "fmt" ) //HerosNode 链表节点 type HerosNode struct { ...

  7. 基于python的selenium常用操作方法(1)

    1 selenium定位方法    Selenium提供了8种定位方式. ·         id ·         name ·         class name ·         tag ...

  8. tensorflow slim代码使用

    此处纯粹作为个人学习使用,原文连接:https://www.jianshu.com/p/dc24e54aec81 这篇文章是借鉴很多博文的,作为一个关于slim库的总结 导入slim模块 import ...

  9. [07]ASP.NET Core 进程外(out-of-process)托管

    ASP.NET Core 进程外(out-of-process)托管 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自<从 ...

  10. 关于window10更新之后,15.5版本虚拟机不能使用的情况:检测更新版本

    1.用了四五年的虚拟机,最近居然老提示检测更新版本,嗯,我将我的虚拟机由10版本,更新到了15.5版本,这也是网友说的,然而并灭有什么乱弄.window10系统自动更新,自动更新以后虚拟机就打不开了, ...