一、静态文件

(一)配置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. git(1) 比较两个不同版本的文件

    git diff commit_id1:file_name commit_id2:file_name 或者 git diff commit_id1 commit_id2 -- file_name co ...

  2. Leetcode 1239. 串联字符串的最大长度

    地址 https://leetcode-cn.com/problems/maximum-length-of-a-concatenated-string-with-unique-characters/s ...

  3. Codeforces Round #598 (Div. 3) A. Payment Without Change 水题

    A. Payment Without Change You have a coins of value n and b coins of value 1. You always pay in exac ...

  4. golang--海量用户即使通讯系统

    功能需求: 用户注册 用户登录 显示在线用户列表 群聊 点对点聊天 离线留言

  5. 【TCP/IP网络编程】:01理解网络编程和套接字

    1.网络编程和套接字 网络编程与C语言中的printf函数和scanf函数以及文件的输入输出类似,本质上也是一种基于I/O的编程方法.之所以这么说,是因为网络编程大多是基于套接字(socket,网络数 ...

  6. IT兄弟连 Java语法教程 Java语法基础 经典面试题

    1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float ...

  7. Leetcode练习题 Palindrome Number

    9. Palindrome Number Question: Determine whether an integer is a palindrome. An integer is a palindr ...

  8. 详解JAVA8Stream 方法引用(基础){全}

    1: Stream流 1.1 引言 1.2 流式思想概述 1.3 获取流 1.4 常用方法 1.5 练习:集合元素处理 2:方法引用 2.1 冗余的Lambda场景 2.2 方法引用符 2.3 通过对 ...

  9. LeetCode 71.简化路径

    LeetCode 71.简化路径 题目描述: 以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径.在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此 ...

  10. 解决No 'Access-Control-Allow-Origin' header is present on the requested resource.跨域问题

    跨域错误 错误原因 解决方法在后台写一个过滤器过滤器来改写请求头头 CorsFilter.java public class CorsFilter implements Filter { @Overr ...