目录
ORM(Object Relational Mapping,全称对象关系映射)连接数据库
登陆页面 temlates - login.html
<form action="" method="post"> <p>用户名:<input type="text" name="name" class="form-control"></p> <p > 密码:<input type="password" name="pwd" class="form-control"> </p> <input type="submit" value="提交">
总结:
- action -- 提交数据提交后台的三种写法
1、http://127.0.0.1:8000/login
2、/login/ ---- 推荐使用
3、空 ---- 默认使用当前页面的路由传输,不推荐- method -- 两种提交请求方式
get:获取页面的数据,携带的数据往往是是不重要的,且数据的大小存在限制
post:提交数据的安全模式,不会讲数据放置在url内
前端样式 static - css、js、vue……
总结步骤:
- 手动创建一个static文件夹在根路径下
- 可放入一些静态文件,前端样式或者图片等素材文件
- 在setting内添加配置 STATIC_URL = '/static/'
- 在setting内添加配置(用来匹配第三部配置的路由,可以设置多条文件路径,查询时会从上到下依次查询)
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), # os.path.join(BASE_DIR, 'static2'), ]
视图层操作传输的数据 views.py
def login(request): if request.method == 'GET': return render(request, 'login.html') elif request.method == 'POST': print(request.POST) # name=request.POST.get('name') name = request.POST['name'] pwd = request.POST.get('pwd') user=models.User.objects.filter(name=name,pwd=pwd).first() if user: return redirect('http://www.baidu.com') else: return HttpResponse('用户名密码错误')
总结:
- request.method -- 判断前台提交过来的请求方式(GET 、POST)
- request.POST -- post 数据获取,返回字典
request.POST [‘前台标签的name’] -- 类字典的使用方式(不推荐)
request.POST.get('name') -- 推荐的指定取值方式,若同名取出同名的最后一个值
request.POST.getlist('name') -- 取出获取的列表,存在同名的所有值- from django.shortcuts import HttpResponse :数据从后台返回前台
- from django.shortcuts import render:模板从后台返回前台,使用路径
render(reguest, 'books.html', {'book_list': dic})- from django.shortcuts import redirect:路径的重定向,即页面的跳转
ORM(Object Relational Mapping,全称对象关系映射)连接数据库
操作数据库总结:
- setting内进行default配置
'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': 'Apassword', 'NAME':'django',//数据库名字 }
- app - __init__.py ------ 将默认的数据库方式转化为pymysql连接方式
import pymysql pymysql.install_as_MySQLdb()
- models,py内创建表结构
from django.db import models # 一个类就是一个表 class User(models.Model): # 自增int类型,是主键 id = models.AutoField(primary_key=True) # name 是一个varchar类型,长度是32 name = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
- pycharm终端实现数据库的迁移操作
1 python3 manage.py makemigrations ----记录一下数据库的变化 2 python3 manage.py migrate ----将变化同步到数据库中