首页 > 数据库 >Django静态文件,链接数据库,DRM操作

Django静态文件,链接数据库,DRM操作

时间:2023-04-23 15:34:00浏览次数:34  
标签:username models 数据库 request django DRM static Django

目录

配置文件的介绍

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

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

# 改语言的
LANGUAGE_CODE = 'zh-hans'

# 改时区
TIME_ZONE = 'Asia/Shanghai'

静态文件的配置

# 以登录功能为例讲解

"""
	我们在Django中一般把html文件放到tempates文件夹下面
	把静态文件放到static文件夹下面
"""

# 静态文件
"""
	就是我们常见的:
		CSS文件
		JS文件
		img
		我们的第三方前端框架:bootstrap相关的
		...
"""

# Django不会帮我们创建static文件夹,需要我们自己手动创建出来
# 名字可以不叫static,但是大家都叫static,你就不要改了,就用这个

'''在static文件夹下面还可以按照功能的不同,进行目录的划分
	css
	js
	img
	...
'''

# 在浏览器中输入网址,如果找不到,说明对应的服务端没有开设对外访问的接口
# 如果我们在后端开放这样一个接口,那是不是就可以访问了

# 静态文件配置
STATIC_URL = '/xxxx/'

# 以后凡是找静态文件,都从下面的列表中得路径去找
# STATICFILES_DIRS = [
#     '/static/css/my.css'
# ]
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

# 动态解析
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>

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()
"""

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',
]

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

django自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试
我们实际项目中都会替换掉它
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 链接MySQL数据库
   'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db13',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123',
        'CAHRSET': 'utf8',
    }
# 以上配置改完之后,框架启动不起来了
'''
	djang框架底层链接MySQL用的模块是MySQLdb模块,这个模块的兼容性很差,所以,我们不用
	我们认为的把MySQLdb模块改为pymysql模块
'''

# 如何修改pymysql模块呢?
在Django框架的任意__init__.py文件中加入一下两句话:
*************************************************************************
        import pymysql
        ####################################这句话的意思其实就是猴子补丁
        pymysql.install_as_MySQLdb()
*************************************************************************
# 要先安装pymysql模块

'''
2.需要指定模块
	django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
    	import pymysql
    	pymysql.install_as_MySQLdb()
	django2.X及以上都可以直接通过下载mysqlclient模块解决
    	pip3.8 install mysqlclient
	ps:该模块windows下载问题不大 主要是mac电脑可能有问题
'''

Django的ORM操作

ORM: 对象关系映射
作用:我们以后再操作数据库的时候,就不用在写原生sql语句,用面向对象的代码去写,然后他给你翻译成原生sql语句。

# 缺点:封装程度太高,ORM的sql执行效率没有原生sql执行的效率高,这个效率的影响暂时忽略

# 关系映射:
表					>>>:      类名

记录					>>>:	 对象

字段					>>>:      属性

'''我们的ORM相关代码写在哪里呢?在models.py文件中写'''

# 创建一张表出来
# 代码写完之后,需要执行两个命令才能把表创建出来

# *******************************************************************************
        python36 manage.py makemigrations  # 相当于把迁移过程发生的事情给你记下来了
        python36 manage.py migrate         # 这句话才真正的把表创建出来
 '''上面两句话缺一不可,都要执行!!!'''
'''只要修改了跟数据库相关的代码,都要执行上面两句话'''
# *******************************************************************************

class Author(models.Model):
    ''''
        由于每张表都应该有一个主键字段,并且主键字段名都叫id,如果满足这两个条件,那么,可以省略不写,自动帮你常见主键字段出来
    '''
    # username varchar(32)
    username = models.CharField(max_length=32)

    # password varchar(32)
    password = models.CharField(max_length=32)

ORM基本语句

from app01 import models
models.类名.objects.create() #增加
models.类名.objects.filter() #查找
models.类名.objects.update() #修改
models.类名.objects.delete() #删除

数据的增查

# 查
 res=models.UserInfo.objects.filter(username=username, password=password).first()
    '''filter(username=username, password=password)里面的条件是and关系'''

    if res:
        # print('登录成功')
	#增
   models.UserInfo.objects.create(username='tank',password='123')
	 else:
        print('用户名或者密码错误')

模板变量的分配

def ab_render(request):
    # 第一种方式分配变量到模板中
    user_dict = {'username': 'kevin', 'password': 123}
    user_dict1 = {'a':1}

    # 第二种方式
    print(locals()) # 会把该函数局部里面的所有变量都分配到模板文件中
    # return render(request, 'ab_render.html', {'user_dict':user_dict, 'user_dict1':user_dict1})
    return render(request, 'ab_render.html', locals())

标签:username,models,数据库,request,django,DRM,static,Django
From: https://www.cnblogs.com/whxx/p/17346692.html

相关文章

  • mysql主从-day1——mysql主从搭建、django中使用多数据库做读写分离
    目录一、mysql主从5django使用多数据库做读写分离一、mysql主从#之前做过redis的主从,很简单#mysql稍微复杂一些,搭建mysql主从的目的是? -读写分离-单个实例并发量低,提高并发量-只在主库写,读数据都去从库#mysql主从原理步骤一:主库db的更新事件......
  • Django配置mysql数据库
    今天跟大家分享Django配置python的mysql数据库链接工具pymysql。系统环境:windows11x64,pycharm专业2022.3版本,python11,Django4.0。第一步:pip安装pymysql库,在当前django的python环境中用pip install pymysql进行安装。如下图: 我已经安装好,所以不用重新安装,这里需要注意的是有......
  • 关于hana数据库集群在pacemaker下的启动后变化及pcs状态记录
    对于hana数据库,两个节点、使用了pacemkaer软件进行了高可用的集群首页、我们在开机后,使用 pcsclusterstart--all,将pacemaker服务启动起来,然后就是到了关机的维护模式 然后我们使用 pcsnodeunmaintenance--all取消维护模式,才能启动资源,可以观察到hana的pacemaker的状......
  • 用友U8、金蝶数据库表
    用友U8的SQLSERVER数据库结构说明表在帐套中的两个表,一个表是RPT_GRPDEF,存放帐套中重要的表名及相关说明;另一个是RPT_ITMDEF,存的是主要表中的相关字段说明;这两个表在8.20以后的版本中都有,可以看看金蝶K3是T_tabledescription和T_fielddescription......
  • 从数据库查询权限信息、自定义失败处理
    从数据库查询权限信息我们只需要根据用户id去查询到其所对应的权限信息即可。所以我们可以先定义个mapper,其中提供一个方法可以根据userid查询权限信息。MenuMapper持久层接口publicinterfaceMenuMapperextendsBaseMapper<Menu>{List<String>selectPermsByUser......
  • mysql数据库表的自增id被删后的乱序重排问题
    在对数据库进行操作的时候遇到了这样一个问题,数据库的表里的id是自增的,当数据被删除或者添加时,ID便会一直增上去,id就会变得很乱,不会按照顺序,今天查找了各个网站,终于找到了解决办法altertabletablenamedropcolumnid;altertabletablenameaddidmediumint(8)notnullprim......
  • 各个数据库的特点
     redis(频繁访问的数据,缓存在redis当中,访问速度得到提升,响应速度也得到提升) mongoDB(存储大数据量的数据,大数据量的访问性能提升) elasticsearch(复杂的搜索功能) neo4j(比较复杂的关系数据,比较直观的看到数据) ......
  • oracle数据库跟踪
    --数据库跟踪SELECT*FROMv$sqlwherelast_active_time>TO_DATE('2019-7-1813:17:00','yyyy-mm-ddhh24:mi:ss')ORDERBYLAST_ACTIVE_TIMEDESC;selects.sql_text,b.name,b.position,b.dup_position,b.value_string,s.LAST_ACTIVE_TIME,s.SQL_......
  • Django全栈进阶之路1 Django4下载与安装
    python下载安装:下载网址:https://www.python.org/downloads/ 安装方法:https://www.cnblogs.com/beichengshiqiao/p/16153586.html新版的python一般无需配置环境,在安装的时候勾选带有AddPython3.10toPATH的选项即可,如果需要手动配置的,参考:https://www.cnblogs.com/beicheng......
  • 【数据库开发】国产数据库之涛思TDengine
    文章目录1、简介2、安装2.1安装TDengine服务2.2运行TDengine服务(taosd)2.3执行TDengine命令行(taos)3、测试3.1新建数据库(命令行命令)3.2新建数据库(脚本文件)3.3命令行参数3.4taosBenchmark命令(体验写入速度)3.5TDengineCLI命令(体验查询速度)3.6基础命令3.7节点管理3.8用户管......