Django知识整理二(小白必会三把斧,静态文件配置,动态接口解析,form表单,request对象及方法,djdango连接数据库)

小白必会三把斧(返回方式)

from django.shortcuts import render,HttpResponse,redirect
HttpResponse  # 返回字符串的
       
render  # 返回html页面
       
redirect  # 重定向


JsonResponse
            返回一个json格式的字符串
            
            前后端分离
                后端给前端返回一个json的格式的字符串(大字典)
            
            
            1.可以自己手动json序列化
                import json
                class MyJsonEncode(json.JsonEncode):
                    pass
                json.dumps(data,cls=MyJsonEncode,ensure_ascii=False)
                
            2.JsonResponse
                内部其实也是调了json.dumps
                JsonResponse(data,json_dumps_param={"ensure_ascii":False},safe=False)

静态文件配置

静态文件:
网站所用到的
自己写好js
自己写好css
第三方的框架 bootstrap fontwesome sweetalert

通常情况下 网站所用到的静态文件资源 统一都放在static文件夹下
    STATIC_URL = '/static/'  # 是访问静态资源的接口前缀
    """只要你想访问静态资源 你就必须以static开头"""
    # 手动配置静态文件访问资源
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR,'static'),
        os.path.join(BASE_DIR,'static1'),
        # os.path.join(BASE_DIR,'static2'),
    ]
    
接口前缀 动态解析
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></scr

form表单

action参数可以写的形式
1.不写 默认朝当前地址提交
2.只写后缀/index/
3.写全路径

form表单默认朝后端提交的方式 默认是get请求
    get请求携带参数的方式 是在url后面?
    url?username=admin&password=213213213213213
    缺点
        1.不安全
        2.get请求携带的参数有大小限制(最大不能超过4KB左右)

前期你如果要提交post请求 你就去settings.py文件注释掉一个中间件
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',
    ]

总结 :form表单上传文件
            1.提交方式必须是post
            2.需要将form标签的enctype属性由默认的urlencoded改为formdata

request对象及方法

前后端数据交互

如何获取请求方式

```

获取post请求携带的数据
request.POST
获取get请求携带的数据
request.GET
get和post在后端获取用户数据的时候 规律是一样的
<QueryDict: {'username': ['admin', 'tank'], 'password': ['123']}>
tank <class 'str'>
123 <class 'str'>
request.POST.get('username') 默认只取列列表的最后一个元素
如果你想将列表完整的取出 你必须用getlist()
```

django连接数据库

django连接MySQL
            第一步配置文件中配置
                DATABASES = {
                    'default': {
                         # 指定数据库 MySQL postgreSQL
                        'ENGINE': 'django.db.backends.mysql', 
                        'NAME': 'day56',  # 到底使用哪个库
                        'USER':'root',
                        'PASSWORD':'root',
                        'HOST':'127.0.0.1', 
                        'PORT':3306,
                        'CHARSET':'utf8'
                    }
                }
    
            第二步 
                django默认使用的是mysqldb连接数据库  但是该模块不支持了
                所以你要告诉django不要用mysqldb该用pymysql连接
                
                你可以在项目名下面的__init__.py也可以在应用名下面的__init__.py文件中指定
                import pymysql
                pymysql.install_as_MySQLdb()

猜你喜欢

转载自www.cnblogs.com/asyouwish/p/11762692.html
今日推荐