首页 > 数据库 >静态文件配置、静态文件相关配置、form表单、request对象、pycharm连接数据库、django连接数据库、ORM简介、ORM基本操作、ORM基本语句

静态文件配置、静态文件相关配置、form表单、request对象、pycharm连接数据库、django连接数据库、ORM简介、ORM基本操作、ORM基本语句

时间:2022-12-11 15:24:32浏览次数:68  
标签:文件 静态 数据库 request django models ORM

目录

静态文件配置

  • 编写一个用户登录页面

  • 静态文件

    它是不怎么经常变化的文件 主要针对html文件所使用的到的各种资源
    像css文件、js文件、img文件、第三方框架文件
    这时候django针对静态文件资源需要单独开始一个目录统一存放到static目录
    
    static目录:
        该目录下如果各种类型的文件都多 还可以继续创建目录
        css目录
        js目录
        img目录
        utils目录/plugins目录/libs目录/others目录/不创
    
  • 资源访问

    我们在地址栏中之所以可以属于路由获取到相应的资源是因为程序员提前开设了资源的接口
    
  • 静态文件资源访问

    默认情况下无法访问 因为我们没有提前开设静态文件资源的访问接口
    

静态文件相关配置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
  • 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连接数据库

1.pycharm初次连接数据库 需要下载对于的驱动

django连接数据库

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': 'day51',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'USER': 'root',
            'PASSWORD': '123',
            'CHARSET': 'utf8'
        }
}
2.需要指定模块
	django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
    	import pymysql
    	pymysql.install_as_MySQLdb()
	django2.X及以上都可以直接通过下载mysqlclient模块解决
    	pip3.8 install mysqlclient
	ps:该模块windows下载问题不大 主要是mac电脑可能有问题

ORM简介

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

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

ORM基本操作

  • 第一步是先在models.py中编写模型类
class GirlsInfo(models.Model):
     # 字段名 = 字段类型 + 约束条件
     id = models.AutoField(primary_key=True)  
     name = models.CharField(max_length=32)
     age = models.IntegerField()
  • 第二步再执行数据库迁移相关命令
python38 manage.py makemigrations  将操作记录到小本本上(migrations)
python38 manage.py migrate  将操作同步到数据库上
 '''注意每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令''

ORM基本语句

from app01 import models
models.类名.objects.create()  增加
models.类名.objects.filter()  查询
models.类名.objects.update()  这是修改所有的数据,如果想要只修改一条数据就要在update前面加上filter
models.类名.objects.delete()  这是删除所有的数据,如果想要只删除一条数据就要在delete前面加上filter

标签:文件,静态,数据库,request,django,models,ORM
From: https://www.cnblogs.com/wxlxl/p/16973711.html

相关文章

  • mysql数据库和表的基础操作
    MySQL数据模型关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库 关系型数据库的优点:都是使用表结构,格式一致......
  • 【mySQL】【数据库】union与or的区别--为什么建议用union代替or?
    LeetCode595.大的国家点击直达如果一个国家满足下述两个条件之一,则认为该国是大国:面积至少为300万平方公里(即,3000000km2),或者人口至少为2500万(即25000000)编写......
  • IFormattable
    实现IFormattable的Tostring的方法,实现为类型输出格式化字符串。publicstringToString(stringformat,IFormatProviderformatProvider){switch(......
  • 关系型数据库中表之间的关系
    在关系型数据库中,为了降低冗余度,一般会设计多个表。表与表之间关系一般分为:一对一,一对多,多对多。一对多:使用外键约束实现,外键约束在多方。例子:学生表、教室......
  • 论文推荐:Rethinking Attention with Performers
    重新思考的注意力机制,Performers是由谷歌,剑桥大学,DeepMind,和艾伦图灵研究所发布在2021ICLR的论文已经超过500次引用传统的Transformer的使用softmax注意力,具有二次空间......
  • python 访问access数据库的实现
    1.安装ODBC的驱动64位http://download.microsoft.com/download/E/4/2/E4220252-5FAE-4F0A-B1B9-0B48B5FBCCF9/AccessDatabaseEngine_X64.exe32位http://download.micro......
  • TDH社区版上新宽表数据库Hyperbase,轻松实现海量数据的毫秒级精确检索
     日前,为了降低用户接触使用大数据技术的门槛以及成本,星环科技推出TDH社区版(TranswarpDataHubCommunityEdition)来帮助企业用户、高校师生、科研机构以及其他专业开......
  • 云数据库FinOps实战复盘
    历时三个多月的HBase成本优化项目按照预期交付了,HBase云数据库月度成本下降了32.5%,超出预期达成目标。我们对本次HBase成本优化项目进行深度复盘,并进一步尝试总结云数据库的......
  • Eolink神技之一、基于数据库智能生成API文档
    Eolink神技之一、基于数据库智能生成API文档目录​​Eolink神技之一、基于数据库智能生成API文档​​​​Eolink数据库智能API文档解决的问题​​​​演示流程​​​​一、......
  • Transformer15
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......