Django学习案例一(blog):四.Models

(1)什么是models

Django中以创建类的形式来创建数据表。

在编写代码的过程中,所有对数据库的操作,都是对类和类的对象进行操作。

ORM对象关系映射(Object relation mapping)实现了对象和数据库之间的映射,隐藏了数据访问的细节,不需要编写SQL语句,为开发提供了便利。

(2)blog/models内容修改:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=50,default=‘Title‘) #标题
    content = models.TextField(null=True)  #内容

(3)生成数据库数据表,执行两条语句

迁移准备:Python manage.py makemigrations blog #app名blog是可选的,如果不写则对项目中所有app进行数据迁移。

执行迁移:Python manage.py migrate

数据库就生成在项目根目录下,名为db.sqlite3,用sqlite expert personal可以看到数据库中已经建立了数据表,并且可以手工增加数据进表中:

这里使用了django默认的sqlite3数据库,如果用其他数据库则需要修改配置文件,如使用mysql,并且建立了djangodb数据库,在setting.py中修改:

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘djangodb‘,
        ‘USER‘:‘root‘,
        ‘PASSWORD‘:‘123456‘,
        ‘HOST‘:‘localhost‘,   #ip
        ‘PORT‘:‘3306‘,
    }
}

(4)页面呈现数据

后台步骤:

views.py中import models;

article=models.Article.objects.get(pk=1) ;

render(request,page,{‘article’:article})

blog.views.py内容修改:

from django.shortcuts import render
#from django.http import HttpResponse
from . import models

def index(request):
    article = models.Article.objects.get(pk=1)
    return render(request, ‘blog/index.html‘, {‘article‘: article})  #三个参数,1.请求对象本身,2.模板文件 3,后台传到前端的数据

前端步骤:

模板可直接使用对象以及对象的” . ” 操作  :  {{ article.title }}

Blog/index.html中内容修改:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<h2>{{ article.content }}</h2>
</body>
</html>

前台展示如下:

时间: 2024-11-13 08:08:13

Django学习案例一(blog):四.Models的相关文章

django学习之Model(四)MakingQuery

上一篇写到MakingQuey中的filter,本篇接着来. 10)-扩展多值的关系 如果对一个ManyToManyField或ForeignKey的表进行filter过滤查询的话,有2中方法可以用.分别是: #1 Blog.objects.filter(entry__headline__contains='Lennon', entry__pub_date__year=2008) #2 Blog.objects.filter(entry__headline__contains='Lennon')

Django学习案例一(blog):一.创建项目、APP

1.创建project 方法一:使用命令行创建项目.在D盘cmd执行如下命令: django-admin.py startproject myblog 方法二:使用pycharm创建项目.放置位置为D:\myblog 2.创建app 方法一:使用命令行创建app,在D盘blog文件夹中cmd执行命令行创建. 方法二:在pycharm中用Terminal命令行创建. python manage.py startapp blog 3.文件介绍 (1)mange.py 是django中的一个项目管理工

Django学习案例一(blog):二.Hello world

1.添加APP 修改settings文件,在INSTALLED_APPS中添加自己建的APP名:blog INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', #此行添加 ]

Django学习案例一(blog):三.模板Templates

1.优化url配置 (1)上一节url配置用的是其中一种方式"Function views",本节进行优化,用"Including another URLconf"方式. Myblog/urls.py内容 from django.conf.urls import url,include #此处添加include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.ur

Python框架之Django学习笔记(十四)

Django站点管理(续·完) 本想昨天更新的,谁曾想昨天竟然是工作日!我就不吐槽昨天加班到十一点多了,需求增加无疑让我等蛋疼不已,忽而想起一首打油诗: 明月几时有,把酒问群友.不知这次版本,今晚能出否.我欲推倒重构,又恐项目经理,深夜对我吼.增删改代码,好像没保存… 深呼吸,看屏幕,泪在流.不应有恨,谁没忘记存代码?人有悲欢离合,码有丢失冲突,此事古难全.但愿人长久,leader别发现. 废话少说,进入今天的正题,Django站点管理学习开始. 自定义列表 让我们更深一步:自定义Author模

Django学习笔记(四)—— Admin

疯狂的暑假学习之  Django学习笔记(四)-- Admin 参考:<The Django Book> 第6章 Django 可以使用admin自动创建管理界面. 1. 配置 django-admin.py startproject 创建的项目,如果没有注解掉默认的配置,python manage.py syncdb 创建用户后,直接 http://xxxxxx/admin 输入密码即可进入. 如果修改了配置文件,保证将 django.contrib.admin 加入setting.py 中

Django学习小组出品:一起来做一个简单的Blog第一周文档(教程)

本节是 django blog 项目的开篇,是 django 学习小组的集体学习成果.django学习小组是由我发起的一个促进 django 新手互相学习.互相帮助的组织.小组在一边学习 django 的同时将一起完成三个项目: 一个简单django blog,用于发布小组每周的学习和开发文档 django中国社区,为国内的 django 开发者们提供一个长期维护的 django 社区,聚集全国的 django 开发者到这个社区上来 django 问答社区, 类似于segmentfault 和

Django学习笔记之——Models

Django里的模型是对数据库对表的一次封装,是应用业务与数据之间的桥梁. 1. 模型的Fields 在上一节,我们在mysite/blog/models.py中创建了BlogPost这个Model. from django.db import models class BlogPost(models.Model):     title = models.CharField(max_length=150)     body = models.TextField()     timestamp =

django学习笔记之models

djang models 1. 创建model from django.db import models class MyObject(models.Model): attribute1 = models.CharField(max_length=50) 2. 创建记录 2.1  p = MyObject(attribute=xxxx) p.save() 2.2  p = MyObject.objects.create(attribue=xxx) 3. 更新记录 p = MyObject.obj