目录
1.对HTML数据提交的补充
1.form表单action参数
(1).不写 默认朝当前所在的url提交数据
(2).全写 指名道姓
(3).只写后缀 /login/
2.在前期使用django提交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',
]
2.request对象方法初识
request对象方法有很多
判断请求与接收数据的request方法:
1.request.method # 返回请求方式 并且是全大写的字符串形式 <class 'str'>
2.request.POST # 获取用户post请求提交的普通数据不包含文件
request.POST.get() # 只获取列表最后一个元素
request.POST.getlist() # 直接将列表取出
3.request.GET # 获取用户提交的get请求数据
request.GET.get() # 只获取列表最后一个元素
request.GET.getlist() # 直接将列表取出
补充:get请求携带的数据是有大小限制的 大概好像只有4KB左右
而post请求则没有限制
登录页面请求例子:
"""
def login(request):
# 返回一个登陆界面
"""
get请求和post请求应该有不同的处理机制
:param request: 请求相关的数据对象 里面有很多简易的方法
:return:
"""
# print(type(request.method)) # 返回请求方式 并且是全大写的字符串形式 <class 'str'>
# if request.method == 'GET':
# print('get访问数据')
# return render(request,'login.html')
# elif request.method == 'POST':
# return HttpResponse("post提交数据")
# 整合如下:
if request.method == 'POST':
return HttpResponse("post提交数据")
return render(request, 'login.html')
"""
3.django链接数据库(MySQL)方式
1.django在数据库默认用的是sqkite3
# settings配置文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
2.django链接MySQL
(1).第一步更改app配置文件中配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 需要连接的数据库
'NAME': 'app01', # 数据库名
'USER':'root', # 用户
'PASSWORD':'117', # 密码
'HOST':'127.0.0.1',
'PORT':3306,
'CHARSET':'utf8'
}
}
(2).第二步代码声明
django默认用的是mysqldb模块链接MySQL
但是该模块的兼容性不好 需要手动改为用pymysql链接
故:需要告诉django不要用默认的mysqldb还是用pymysql
# 在项目名下的init或者任意的应用名下的init文件中书写以下代码都可以:
import pymysql
pymysql.install_as_MySQLdb()