分类目录归档:语言

Django学习系列6:数据库设计,models.py设计

Django中的循环引用:在设计django app的时候,我们知道每个app都有models,在某个models中,很有可能会用到其它app中的models,比如举个例子,我们在users app中定义好了一个models,叫UserCourse,这里边记录了用户学习的课程,既然是用户学习的课程,这里边肯定有两个外键,一个是User,一个是Course。同理,Courses的models也有两个外键,一个叫Course,一个叫Comment.相互引用时会造成问题,A完成不了,B也完成不了,这样就成了一个死循环。所以在设计app的时候,一定要避免这种循环的import。

继续阅读

Django学习系列4:url templates配置

提取mysql内的数据,显示到html中:

编辑views.py

# _*_ coding: utf-8 _*_
from django.shortcuts import render
import MySQLdb

from .models import UserMessage

# Create your views here.

def getform(request):
#all_messages = UserMessage.objects.all()
all_messages = UserMessage.objects.filter(name = 'zone1')
if all_messages:
message = all_messages[0]

# if request.method == "POST":
# name = request.POST.get('name','')
# message = request.POST.get('message','')
# address = request.POST.get('address','')
# email = request.POST.get('email','')
# user_message = UserMessage()
# user_message.name = name
# user_message.message = message
# user_message.address = address
# user_message.email = email
# user_message.object_id= "helloworld4"
#
# user_message.save()

return render(request, 'message_form.html',{
"my_message":message
})
继续阅读

Django学习系列2:models

1.ORM简介:

 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。

ORM的概念 :
        让我们从O/R开始。字母O起源于”对象”(Object),而R则来自于”关系”(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。 
        当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息,等等。你在DAL中写了很多的方法来读取对象数据,改变状态对象等等任务。而这些代码写起来总是重复的。

继续阅读