day77Django中orm数据库相关操作
0 django目录
-settings
-urls
-views
******强调:setting中'django.middleware.csrf.CsrfViewMiddleware'中间件先注释掉(因为form表单post提交数据时会被拦截报错!!)
-执行django项目:python3 manage.py runserver 127.0.0.1:8000
1 登陆注册
-form action中:
-三种写法:
一:不写
二:http://127.0.0.1/login/
三:/login/(推荐用这种)
2 Django三件套
render:返回一个模板(页面) render(request,‘xxx.html’)
redirect:重定向到某个地址 redirect('路由或127.0.0.1/login/')
HttpResponse:返回字符串 HttpResponse('xxxxx')
****重点:本质上返回的都是HttpResponse对象
3 orm简介
-orm能创建表,创建字段,删除字段,修改字段,但是不能创建数据库
细节:一个新的Django项目,不要用原来的数据库。
-是什么?对象关系映射
-python代码《---对象--》orm层转换《-----sql---》mysql/oracle。。。
-要创建一个表,有了orm,只需要写一个类就可以了
orm连接mysql步骤:
0 手动创建出数据库:0107
方法:1.终端命令行创建库;2.Navicat软件创建库。
1 在settings中配置:
'default': {
# 这些key必须都是大写
'ENGINE': 'django.db.backends.mysql',
# 数据库名字
'NAME': '0107',
'HOST':'127.0.0.1',
'PORT':3306,
'USER':'root',
# 'PASSWORD':''
}
2 再app的init文件中写:
import pymysql
pymysql.install_as_MySQLdb()
3 在models中创建类,类中写字段;
class UserInfo(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=32)
pwd=models.CharField(max_length=32)
4 把表同步到数据库,在终端命令窗口或pycharm的Terminal窗口下进行,效果一样;
#这步数据库表并没有同步到数据库,只是在migrations内做了一个记录
-python3 manage.py makemigrations
#这步才将数据表同步到数据库
-python3 mangae.py migrate
orm连接sqllite数据库步骤:
从第三步开始,往后走
pyhcarm中database连接mysql数据库步骤: database相当于Navicat一样是个管理数据库的可视化工具。
database连接mysql后用来干什么?---》像Navicat一样进行管理数据库:表的增删改查,记录的增删改查。不同点:不能创建库
1手动创建库;
2右边框database;
加号--datasource选mysql--安装提示插件后,填写库名、user、password---即可看到库了
同步到数据库后,创建出来的表介绍:
1 orm自动将app的名字拼在表前_类名
2 orm会自动创建出好多其他表(不要管,不要删)
4 基于orm的用户登陆功能练习
orm查询:
-1查询所有:
类名.objects.all()
-2有过滤条件的查询
类名.objects.filter(name='lqz',pwd='123').first()
相当于sql语句 select * from biao where name=lqz and pwd=1234
作业:
1 用orm连接mysql,写登陆功能
2 有能力的同学,写注册

浙公网安备 33010602011771号