Django学习ORM

ORM

  1. 可以操作数据表,数据行
  2. 不能创建数据库,所以必须自己手动建立

配置步骤:

  1. setting里设置
DATABASES = {
			'default': {
				'ENGINE': 'django.db.backends.mysql',  # 连接的数据库类型
				'HOST': '127.0.0.1',  # 连接数据库的地址
				'PORT': 3306,  # 端口
				'NAME': "xxoo",  # 数据库名称
				'USER': 'root',  # 用户
				'PASSWORD': '123456'  # 密码
			}
		}
  1. django中使用pymysql代替MySQLdb连接数据库
文件__init__.py
	import  pymysql
	pymysql.install_as_MySQLdb()
  1. 在app01文件下models.py里面定义类,必须继承models.Model,创建了一张表,表结构如代码
class Userinfo(models.Model):
	id = models.AutoField(primary_key = true)
	name = models.CharField(null = false,max_length = 20)
# 类名对应表名,里面包含字段

python3 manage.py makemigrations
python3 manage.py migrate
# 上面第一句抓取models.py文件里面的内容,第二句执行文件里面的内容

ORM展示数据库数据:

1.urls.py先建立对应的访问关系
	urlpatterns = [
    	url(r'^admin/', admin.site.urls),
    	url(r'^xxoo/',xxoo)
		]

2.创建相应的函数
	form app01 import models
	def xxoo(request):
		ret = models.Userinfo.objects.all()	# ret是查询数据库的结果(全部),是列表
		ret[0]	# 表示第一行数据,ret[0].ID表示第一行数据的Id列
		return render(request,"user_list.html",{"user_list":ret})
		# 返回一个"user_list.html"并渲染,渲染网页的时候网页当中的"user_list"变量的值是ret

3.创建"user_list.html"
	<table border="1">
                <thead>
                <tr>
                    <td>ID</td>
                    <td>Name</td>
                </tr>
                </thead>
                <tbody>
                {% for tmp in all_Publishing_House %}
                    <tr>
                        <td>{{ tmp.ID }}</td>
                        <td>{{ tmp.Name }}</td>
                    </tr>
                {% endfor %}
                </tbody>
            </table>
# 注意这里的写法

ORM删除数据库数据:

增加按钮action=某个路径,建立对应的函数,get方法获取ID,ORM查找数据库,删除
del_date = models.类名.object.get(id = 网址传过来的数据,none)    # 某一行数据
del_date.delete()	# 删除

# get(a,b)  a是查询的关键字,b是默认为none,例如字典当中的get方法

ORM对应关系

class Game(models.Model):
    ID = models.AutoField(primary_key=True)
    Name = models.CharField(max_length=32,null=False,unique=True)
    Publishing_House = models.ForeignKey(to=Publishing_House)

# 类名对应数据库中表名,类属性对应字段,最后一行是外键,外键取出来的还是一个对象

ORM添加

def add_book(request):
	if request.method == "POST":
		name = request.POST.get("title_name")
		models.Game.objetcs.creat(Name = name)

# form表单action提交过来的方法是post的划,把name 指向form表单中title_name字段的对应值
最后一句是Game这个表中创建该数据		

ORM删除数据

<a href="/delete_game/?id={{tmp.ID}}">删除</a>
# 网页里把删除标签指定一个链接地址,并把id的值传递给后端

# 后端对应函数的内容
def add_book(request):
	del_id = request.GET.get("id")
	models.Game.objetcs.get(del_id).delete()

更具体字段相关的参考这里
更具体操作相关的参考这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值