首页 > 数据库 >Django框架——静态文件配置、form表单、request对象、连接数据库、ORM简介、ORM基本操作和语句

Django框架——静态文件配置、form表单、request对象、连接数据库、ORM简介、ORM基本操作和语句

时间:2023-04-21 19:56:10浏览次数:43  
标签:文件 form models 数据库 request django ORM 基本操作 目录

配置文件介绍

SECRET_KEY = '0yge9t5m9&%=of**qk2m9z^7-gp2db)g!*5dzb136ys0#)*%*a'  # 盐
DEBUG = True # 调试模式, 等项目上线的时候,改成False

# 配置数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # 默认是自带的sqlite3数据库
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 改语言的
LANGUAGE_CODE = 'en-us'  # 默认英语
LANGUAGE_CODE = 'zh-hans'  # 中文

# 改时区
TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

静态文件的配置

1.编写一个用户登录页面
2.静态文件
	不怎么经常变化的文件 主要针对html文件所使用到的各种资源
    	css文件、js文件、img文件、第三方框架文件
        
    Django针对静态文件资源需要单独开始一个目录统一存放
    	static目录  # 该目录下如果各种类型的文件都多 还可以继续创建目录
        	css目录
        	js目录
            img目录
            utils目录/plugins目录/libs目录/others目录/不创 # 我们的第三方前端框架:bootstrap相关的
'''
Django不会帮我们创建static文件夹,需要我们自己手动创建出来
名字可以不叫static,但是大家都叫static,你就不要改了,就用这个
'''
3.资源访问
	我们在地址栏中之所以可以属于路由获取到相应的资源是因为程序员提前开设了资源的接口
4.静态文件资源访问
	默认情况下无法访问 因为我们没有提前开设静态文件资源的访问接口

静态文件配置方法
    1.接口前缀
    STATIC_URL = '/xxx/'  # 访问静态文件资源的接口前缀(通行证)
    # 以后凡是找静态文件,都从下面的列表中得路径去找
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static'),  # 存储静态文件资源的目录名称
        os.path.join(BASE_DIR, 'static1'),  # 存储静态文件资源的目录名称
        os.path.join(BASE_DIR, 'static2'),  # 存储静态文件资源的目录名称
    ]
    '''
    接口前缀正确之后 会拿着后面的路径依次去到列表中自上而下查找 一旦找到就返回
    '''

    2.接口前缀动态匹配
    {% load static %}
	<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-			dist/css/bootstrap.min.css' %}">
	<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}">	</script>

form表单

action		控制数据提交的地址
	1.action=""  数据默认提交给当前页面所在的地址
	2.action="https://www.baidu.com/"  完整地址
 	3.action="/index/"  朝当前服务端的index地址提交
    
method		控制数据提交的方法
	默认是get
	可以改post
    
请求方法补充
	get
    	朝服务端索要数据 也可以携带一些额外的要求
        	携带额外数据的方式:  URL?xxx=yyy&uuu=zzz
      		问号后面携带数据的大小是有限制(2KB)的并且不能携带敏感数据
    post
    	朝服务端提交数据
        	携带额外数据的方式:  请求体
       		请求体携带数据安全性较高并且没有大小限制
            
前期发送post请求需要注释掉配置文件中的某一行
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',
]

request对象

request.method	获取请求方式 结果是纯大写的字符串数据  # GET\POST
request.POST	获取post请求请求体里面携带的数据
	request.POST.get()		获取列表最后一个数据值
 	request.POST.getlist()	 获取整个列表数据
request.GET		获取网址问号后面携带的数据
	request.GET.get()		获取列表最后一个数据值
 	request.GET.getlist()	 获取整个列表数据
    
"""
在视图函数中针对不同的请求代码编写套路
	if request.method == 'POST':
		return HttpResponse()
	return HttpResponse()
"""

pycharm连接数据库

pycharm初次连接数据库 需要下载对应的驱动
# 这个时候pycharm就是数据库的客户端了,类似于Navicat,

Django链接数据库(MySQL)(掌握)

django自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试
我们实际项目中都会替换掉它

默认配置sqlite3
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

1.修改配置文件
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root'
        'PASSWORD':'123456'
        'CHARSET':'utf8'
    }
}
2.需要指定模块
# 以上配置改完之后,框架启动不起来了
'''
	djang框架底层链接MySQL用的模块是MySQLdb模块,这个模块的兼容性很差,所以,我们不用
	我们人为的把MySQLdb模块改为pymysql模块
'''
# 要先安装pymysql模块
django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
    	import pymysql
    	pymysql.install_as_MySQLdb()
django2.X及以上都可以直接通过下载mysqlclient模块解决
    	pip3.8 install mysqlclient
    
'''
	如果你使用pymysql模块的话,每次都要加上面两句话,也很不方便,但是,你目前先用着
	后面还有个模块:mysqlclient模块,这个模块的兼容性非常强,就不用在加任何东西
	它有个缺点:一般情况下,安装不上.
'''

ORM简介

ORM:对象关系映射
	能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库
    
类					表
对象					一条条数据
对象点名字			 数据获取字段对应的值

ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

ORM基本操作

1.现在models.py中编写模型类
	class UserInfo(models.Model):
        # 字段名 = 字段类型 + 约束条件
        id = models.AutoField(primary_key=True)  
        name = models.CharField(max_length=32)
        age = models.IntegerField()
2.执行数据库迁移相关命令
	python38 manage.py makemigrations  将操作记录到小本本上(migrations)
	python38 manage.py migrate		  将操作同步到数据库上
 '''注意每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令'''
'''
由于每张表都应该有一个主键字段,并且主键字段名都叫id,如果满足这两个条件,那么,可以省略不写,自动帮你常见主键字段出来
'''

ORM基本语句

from app01 import models
models.类名.objects.create()
models.类名.objects.filter()
models.类名.objects.update()
models.类名.objects.delete()

标签:文件,form,models,数据库,request,django,ORM,基本操作,目录
From: https://www.cnblogs.com/XxMa/p/17341555.html

相关文章

  • WebStorm 2023.1 vue文件标签中变量无法识别 Unresolved variable or type
    从老版本WebStorm升级到 WebStorm2023.1之后,打开项目莫名爆红 可能是查询的不对,很多博客指明是依赖的问题,实际修改无效问题出在文件类型指向不对修改为: 问题解决 ......
  • phpStorm自定义快捷键,输出代码块,模板
    在开发过程中经常需要打印数据调试,var_dump()或print_r都没办法直观的查看数据,我一般用如下代码打印数据,但是每次手动输入又麻烦,所以设置一个快捷键就能输出一下代码,岂不是一劳永逸:1.进入设置对话框:File->Setting2.接下自定义快捷键:按一下步骤操作完,点击"ok"键![在这......
  • 1000层的Transformer,诞生了!
    卖萌屋今日学术精选大家好,我是卖萌酱。今天下午卖萌屋作者群里一位MILA实验室的大佬在临睡前(蒙特利尔时间凌晨0点半)甩出来一篇论文:大佬表示太困了,肝不动了,于是卖萌酱左手抄起一罐咖啡,右手接过论文就开始肝了,必须第一时间分享给卖萌屋的读者小伙伴们!论文链接:https://arxiv.org/pdf/......
  • 如何在 .NET Core WebApi 中处理 MultipartFormDataContent 中的文件
    在上一篇文章(如何在.NETCoreWebApi中处理MultipartFormDataContent)中,我们有描述过如何以最简单的方式在.NETCoreWebApi中处理MultipartFormDataContent。基于框架层面的封装,我们可以快速的从Request.Form中分别拿到文件内容和文本内容,但是这些默认的解析方式都是建......
  • TransformMine图像表格化构建系统
    今日团队任务:图片转excel(5天)前端开发(需团队风格统一)调用接口(后端),json数据->excel前后端连接           任烁玚(进行中)            图片转html(8天)前端开发(需团队风格统一)图片转为pdf(存储)pdf转html(调用接口)[html存储到数据库]前后台数据同......
  • WinForm快速开发框架-ZianWinForm
    WinForm快速开发框架-ZianWinForm介绍ZianWinForm是基于C#WinForm快速开发框架UI组件采用***。ORM框架采用PersistenceLayer。内嵌简单的IOC框框,支持特性:Autowired、Bean、Component,待支持特性:Configuration、ConfigurationProperties、Controller、PathVariable、PostCon......
  • Winform DataGridView使用最佳方法
    一般使用到DataGridView控件的都是涉及到多数据显示及更改。非数据库最好使用一个类写个model:internalclassDataModel{publicintid{get;set}publicstringname{get;set}publicstringtel{get;set}…… } 然后在DataGridView数据绑定此对象重新加载数据的时候......
  • git 基本操作
    gitconfig配置全局配置name和邮箱gitconfig--globaluser.name"xxx"gitconfig--globaluser.email"xxx"初始化一个项目1、初始化本地项目gitinit2、基于远程分支克隆gitclone远程仓库地址暂存区操作添加到暂存区gitaddfile...gitadd.暂存所有......
  • docker镜像与容器基本的基本操作
    一、docker基本命令(运维版)1、查看镜像——dockerimages#查看下载到本地的所有镜像dockerimages​​REPOSITORY TAG   IMAGEID   CREATED  SIZEnginx   latest ae2feff98a0c 9daysago 133MB------------------------------------......
  • vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件
    在ElementPlus中,el-form是一个表单组件,用于创建表单以便用户填写和提交数据。它提供了许多内置的验证规则和验证方法,使表单验证更加容易。使用el-form组件,您可以将表单控件组织在一起,并对表单进行验证,以确保提交的数据符合预期的格式和要求。该组件具有以下特性:支持内置......