三板斧 全局配置文件介绍 request方法 pycharm连接数据库 Django连接数据库

三板斧的使用和JsonReponse序列化类的使用

# 通过路由访问到视图函数的时候返回的响应数据 不能返回None
from django.shortcuts import render,HttpResponse,redirect

# 第一种 HttpResponse
def index(request):
    print('aaa')

    # 返回的数据是字符串格式
    return HttpResponse('我是index页面')

第二种 render

from django.shortcuts import render,HttpResponse,redirect

def index(request):
    print('aaa')

    # 返回的是html页面
    return render(request,'templates/login.html')

第三种 redirect

def register(request):
    print(111)
    # 访问到这个地址之后 再跳转到下面给的另一个地址
    return redirect('http://www.baidu.com')

JsonReponse序列化类的使用

序列化
json格式的数据
{"a":1}
json有什么用:
	跨语言传输
序列化:json.dumps
反序列化:json.loads
from django.http import JsonResponse
def index(request):
    # user_dict = {'username':'kevin你好'}
    user_dict = [1, 2, 3, 4]
    # res=json.dumps(user_dict,ensure_ascii=False)
    # return  HttpResponse(res)
    # 通过看源码学技术					# 这个参数是显示中文
    # return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
    # safe: 这是一个布尔值,返回前端的格式 是否允许其他格式 如果为True 只能返回字典 							
    return JsonResponse(user_dict,safe=False)
    # return render(request,'index.html')

全局配置文件的介绍

import os
# 获取项目的绝对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# django配置文件的密钥  可以随便修改
SECRET_KEY = 'kf+pvfb0hy^pj2$e$!ij4xvcaxk%+s+vv!px-f+50di)9ikh#^'

# 这里是调试模式 没上线的时候用的 上线之后改为False
DEBUG = True
# 限制访问的 * 号代表所有都可以访问
ALLOWED_HOSTS = []
# 注册APP应用的
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01'
]
# 中间件
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',
]
# 文件路由的地址
ROOT_URLCONF = 'day52.urls'
# html模板文件
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR,'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
# 启动文件
WSGI_APPLICATION = 'day52.wsgi.application'
# 连接数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
# 修改中文
LANGUAGE_CODE = 'en-us'
# 修改时区
TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

# 静态文件
STATIC_URL = '/static/'

request对象方法

request中GET方法

from django.shortcuts import render,HttpResponse,redirect

def index(request):
    # request.method 中获取请求方式 必须是大写
    if request.method == 'GET':

        # 单个获取get请求过来的数据 但是一般提交的数据是post方法来提交
        print(request.GET.get('name'))
        print(request.GET.get('age'))

        # 一次性获取多个get传过来的数据 但是取出来的key一样
        # http://127.0.0.1:8000/index?name=huang&name='lu'&name='shun'
        print(request.GET.getlist('name'))

        return HttpResponse('ok',200)
    return HttpResponse('POST请求')

request中POST方法

def register(request):
    if request.method == 'POST':
        # 如果参数一样 默认取出最后面一个       
        print(request.POST.get('username'))
        print(request.POST.get('password'))

        # 前端传过来的数据像 hobby = {'hobby':'username','hobby':'password','hobby':'age',}
        # ['huang', 'lu', 'ping']
        # 也可以通过所有取值
        print(request.POST.getlist('username')[1])

        return HttpResponse('200 OK')

    return HttpResponse('不走post方法就走get方法')

pycharm连接数据库

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

Django连接数据库

# 先安装 pymysql 模块
在任意的__init__.py文件中添加一下代码
import pymysql
pymysql.install_as_MySQLdb()

# 找到 settlings文件  里面有一个叫 DATABASES 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST' : '127.0.0.1', # 数据库服务器的IP地址
       	'PORT' : 3306,
       	'USER': 'root',  # 用户名
       	'PASSWORD' : '123', # 密码
       	'NAME' : 'db1', # 数据库的名字
       	'CHARSET': 'UTF-8', # 编码格式
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值