利用Django去操作数据库并完成简易的登录及编辑功能
Posted yafeng666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Django去操作数据库并完成简易的登录及编辑功能相关的知识,希望对你有一定的参考价值。
一、静态文件
什么是静态文件?
简单来说静态文件就是已经提前写好了的,可以给网站使用的文件
比如:
css
js
第三方的一些组件:如bootstrap, sweetalter ,fontawesome等
现在我们已经知道了网站所使用的html文件要存放到templates文件夹中,那么同理针对网站所使用
到的静态文件也用该单独找哟个文件夹来存储,这个文件夹默认情况下就都叫static
该文件夹内部通常都是以下的结构
static
- css
网站所使用的所有的css文件
- js
网站所有用到的js文件
- image
网站所有用到的图片的文件
- 第三方文件
二、Django静态文件配置
Django在配置文件中给你提供了配置文件的一些信息 我们只需要按照固定的写法书写
1、新建一个static文件
2、将我们新建好的静态文件添加到配置文件中去
3、添加好了静态文件的配置以后我们就可以使用静态文件的功能了(这里我用的是bootstrap的静态文件)
基本配置:
STATIC_URL = ‘/static/‘ # 这里的static是访问后端静态资源的接口前缀 默认情况下接口前缀名与静态文件名保持一致
"""
<link rel="stylesheet" href="/xxx/bootstrap-3.3.7-dist/css/bootstrap.min.css">
你要想访问后端的静态资源 你必须以接口前缀开头 后面跟上具体的文件路径 才能够访问到对应的资源
当你的接口前缀正确之后 会拿着后面的路径依次去下面列表中的每一个文件夹下查找对应的资源
顺序是从上往下依次查找 如果都没有找到才会报错
STATICFILES_DIRS = [
os.path.join(BASE_DIR,‘static‘), # 这里的static才是你文件夹的路径
os.path.join(BASE_DIR,‘static1‘),
os.path.join(BASE_DIR,‘static2‘),
]
解决动态绑定问题(*******)
{% load static %}
<link rel="stylesheet" href="{% static ‘bootstrap-3.3.7-dist/css/bootstrap.min.css‘ %}">
<script src="{% static ‘bootstrap-3.3.7-dist/js/bootstrap.min.js‘ %}"></script>
三、form表单
form表单默认是以get请求提交数据的
http://127.0.0.1:8000/login/?username=admin&password=123
action
1.不写 默认朝当前地址提交数据
2.全路径
3.后缀(/index)
提交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‘,
]
将settings下的这个注释掉
视图函数应该做到针对不同的请求 做出不同的处理逻辑
eg:
get请求来 应该只需要返回一个html文件
post请求来 应该获取用户提交的数据 然后做进一步处理
你必须要能够判断出当前请求到底是什么请求
四、request对象
获取前端请求方式
request.method # 结果是一个纯大写的字符串 GET/POST
request.POST # 获取post请求提交的数据 类似于是一个大字典
# <QueryDict: {‘username‘: [‘admin‘, ‘jason‘], ‘password‘: [‘123‘]}>
request.POST.get() # 只会取列表最后一个元素
request.POST.getlist() # 取出整个列表
request.GET # 获取符合get请求携带数据格式的数据 url?xxx=yyy&ooo=lll
# <QueryDict: {‘username‘: [‘admin‘, ‘jason‘], ‘password‘: [‘123‘]}>
request.GET.get() # 只会取列表最后一个元素
request.GET.getlist() # 取出整个列表
通常情况下针对不同的请求应该做不同的处理 而一般情况下get请求次数要远远对于post请求
所以我们应该针对非get请求作出逻辑判断 将get请求直接写在函数体内而不做判断
以上是关于利用Django去操作数据库并完成简易的登录及编辑功能的主要内容,如果未能解决你的问题,请参考以下文章