1.登录功能(web简易版 基于pymysql 对于数据库的操作,接下来都是用django与数据库的操作)
需要注意的小点:补充
(了解知识点)在向器发送是否加斜杠的本质(两次访问)
第一次是浏览器发送信息说没有斜杠没有办法匹配3xx重定向(Django)说在试一次加斜杠的看看,斜杠成功了,再连不上就会报错。
2.templates的作用:
所有的html文件都是默认写在templates 文件下面;用来连接函数与html的 返回函数 发送到浏览器 (渲染页面)、
3.关于静态页面的设置:
为什么需要静态文件:主要是暴露给外界能够访问服务器静态文件下面的所有资源 注意默认大写:STATIC_URL="/xxx/" #接口前缀 跟你的静态文件夹的名字一样一点关系都没有 只是为了好记 静态文件的配置:STATIC_BIRS = [ os.path.join(BASE_DIR,'static') #就是你的静态文静夹 ]
注意#ps:会依次查找列表中所有的静态文件路径 找到的话就立刻停止 没有这返回404
4.form 表单提交的两种方式:
form表单触发提交数据的动作两种方式 1.<input type="submit" class="bnt btn-success"> 2.<button></button>
5.登录:提交数据的地址如何指定的及方式
action 属性控制提交的地址 方式1:全路径 <form action="http://127.0.0.1:8000"> 方式2:可以只写路径后缀 <form action="/login/"> 方式3:不写默认当前路径:http://127.0.0.1:8000/login/
6.把默认get 请求数据改成 method=post 在form 表单 中 添加method=post
7.登录时请求方式解析:
def login(request): print(request.method) if request.method== 'GET': # return render(request, 'login.html',) elif request.method == 'POST': return HttpResponse('已收到请求信息 ') # # jason 建议:减少代码冗余 if request.method=='POST': return HttpRepoast('请求OK') retuen render(requrest,'lgoin.html') ———————————————— def login(request): print(request.method) if request.method== 'GET': return render(request, 'login.html',) elif request.method == 'POST': print(request.POST) # <QueryDict: {'username': ['贝多芬'], 'password': ['123']}> 大字典 # 所有可以通过字典取值 print(request.POST.get('username')) # value 虽然是个列表但是拿出来的确是单个的字符 # 切默认 print(request.POST.get('password')) # 里面要是有多个爱好 可以getlist print(request.POST.getlist('username')) # if request.method=='POST': return HttpResponse('请求ok') print(request.GET) # GET请求和POST请求一模一样 return render(request,'login.html')
8.django 操作数据库的方式:在settings 中DATABASES 配置文件
添加我们操作数据需要的标准需求:如下(*********)
1.需要修改的配置文件****************** DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'POST':3306, 'HOST':'127.0.0.1', 'USER':'root', 'NAME':'day54', 'PASSWORD':'8888' } }
9.数据库配置设置好之后我们需要把
每一步都不能出错(**********)
告诉django 用pymysql 替换他默认mysql_db 模块数据连接数据库
方式1:在咱们的项目文件夹myfirstdjango下面的__init__.py
方式2: 也可以在咱们的应用文件夹app01下面的__init__.
# 固定写法(***********) import pymysql pymysql.install_as_MySQLdb() # 告诉Django用pymysql代替mysqldb链接数据库
10.Django 中的ORM是如何映射到我们数据的表关系:
```python #9:dajango 中的ORM类与数据库中(mysql)中表的关系 # 类 >>>>>>>> 对应数据库中的一张表 # 对象>>>>>>> 对应数据库中的一条条记录 # 对象的属性>>>>>对应数据库中的一条记录某个字段对应的值 ```
11.如何事现在Django 进行前后端数据交互 :流程一定要要明确
1.先注册功能实现 用户对于注册 增 查 改 删
思路:
# 修改用户信息,内容,文章 数据库 def edit(request): if request.method == 'POST': username=request.POST.get('username') password=request.POST.get('password') print(request.POST) # <QueryDict: {'edit_id': ['1'], 'username': ['贝多芬'], 'password': ['123']}> print('0000') print(request.GET) # <QueryDict: {'edit_id': ['7']}> # t同样GET也可以拿到用户修改数据时发送的edit_id # 获取用户修改数据的id edit_id = request.POST.get('edit_id') edit_id = request.GET.get('edit_id') models.User.objects.filter(id=edit_id).update(name=username, password=password) return redirect('/userlist') # 先写的这里 # edit_id = request.GET.get("edit_id") # # # return redirect(request,'userlist') edit_id=request.GET.get('edit_id') user_obj=models.User.objects.filter(id=edit_id).first() return render(request,'edit.html',locals())