一、静态文件

(一)配置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. 201871010113-刘兴瑞《面向对象程序设计(java)》第八周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>htt ...

  2. 设计模式-State(行为模式)-很好的实现了对象的状态逻辑与动作实现的分类,状态逻辑在State的派生类实现,动作可以放在Context类中实现。

    以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Context.h #pragma once class State; class Context { public: C ...

  3. Java连载47-多态基础语法、作用

    一.多态的语法 1.两个类之间没有继承关系的,使用多态是不能编译的. 2.无论向上还是向上转型,都需要有继承关系. 3.什么时候需要向下转型? 当调用的方法或者属性是子类型特有的,在父类型中不存在,就 ...

  4. Mac OSX vim配色方案选择

    首先查看系统自带的vim配色种类: ls /usr/share/vim/vim73/colors 大致输出如下: README.txt default.vim elflord.vim morning. ...

  5. C语言程序设计100例之(13):最大子段和

    例13        最大子段和 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大.例如在序列2,-4,3,-1,2,-4,3中,最大的子段和为4,该子段为3,-1,2. 输入格式 第一 ...

  6. 世界GDP数据可视化

    各国GDP数据可视化 数据来自世界银行 导入资源包,如下: Pandas, numpy, seaborn 和 matplotlib import pandas as pd import numpy a ...

  7. Linux 内存释放

    简介 linux 内存释放通过如下命令,将cache与buff根据环境进行释放操作,避免重启释放内存. 操作 1.将内存中buff数据保存磁盘 sync 2.清理cache与buff缓存 echo 3 ...

  8. SpringBoot 和Vue前后端分离入门教程(附源码)

    作者:梁小生0101 juejin.im/post/5c622fb5e51d457f9f2c2381 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计 ...

  9. solidity智能合约implicit conversion异常

    问题场景 在使用^0.5.10版本的solidity时,如果使用this关键字会出现以下问题. 代码: require(tokenContract.balanceOf(this) >= _num ...

  10. WPF属性绑定实现双向变化

    WPF依赖项属性可以实现属性的绑定,成功绑定之后只要修改后台绑定的属性,即可UI同步自动更新绑定的值,无需手动刷新界面:同样,前台的值变化后,通过获取绑定的属性值也可获取UI变化后的值,实现双向变化的 ...