1.1 设计模型

Django,但它附带了一个你可以用python代码描述数据库布局的对象关系映射器

数据模型语法提供了许多丰富的方法来展现你的模型——到目前为止,它解决了多年来数据库模式问题。

简单的例子

#mysite/news/models.py

from django.db import models

class Reporter(models.Model):
full_name = models.CharField(max_length=70) def __str__(self):
return self.full_name class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter) def __str__(self):
return self.headline

1.2创建数据库

python manage.py migrate
migrate命令会查找所有可用的模型然后在你的数据库中,创建还不存在的数据库表

1.3使用API

使用一个便捷且功能丰富的Python API来访问你的数据。这些API是即时创建的,不需要代码生成:
# 导入模型
>>> from news.models import Reporter, Article # 查看实例.
>>> Reporter.objects.all()
[] # 创建一个实例.
>>> r = Reporter(full_name='John Smith') # 保存对象.
>>> r.save() # 查看Id.
>>> r.id
1 # 显示数据库的信息.
>>> Reporter.objects.all()
[<Reporter: John Smith>] # Fields are represented as attributes on the Python object.
>>> r.full_name
'John Smith' # Django provides a rich database lookup API.
>>> Reporter.objects.get(id=1)
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__startswith='John')
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__contains='mith')
<Reporter: John Smith>
>>> Reporter.objects.get(id=2)
Traceback (most recent call last):
...
DoesNotExist: Reporter matching query does not exist. # Create an article.
>>> from datetime import date
>>> a = Article(pub_date=date.today(), headline='Django is cool',
... content='Yeah.', reporter=r)
>>> a.save() # Now the article is in the database.
>>> Article.objects.all()
[<Article: Django is cool>] # Article objects get API access to related Reporter objects.
>>> r = a.reporter
>>> r.full_name
'John Smith' # And vice versa: Reporter objects get API access to Article objects.
>>> r.article_set.all()
[<Article: Django is cool>] # The API follows relationships as far as you need, performing efficient
# JOINs for you behind the scenes.
# This finds all articles by a reporter whose name starts with "John".
>>> Article.objects.filter(reporter__full_name__startswith='John')
[<Article: Django is cool>] # Change an object by altering its attributes and calling save().
>>> r.full_name = 'Billy Goat'
>>> r.save() # Delete an object with delete().
>>> r.delete()

1.3在admin site中注册模型

一旦你的模型定义完毕之后,Django能自动创建一个专业的、可以用于生产环境的 管理界面 – 可以让认证的用户添加、修改和删除对象的一个站点。只需简单地在admin site中注册你的模型即可:

#mysite/news/admin.py

from django.contrib import admin

from . import models

admin.site.register(models.Article

1.4设计URLs

设计urls并包含映射

#mysite/news/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^articles/([0-9]{4})/$', views.year_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

1.5编写视图

返回一个包含请求的页面内容的 HttpResponse对象, 或抛出一个异常如Http404,

通常,视图会根据参数检索数据,加载模版,使用数据渲染模版

#mysite/news/views.py

from django.shortcuts import render

from .models import Article

def year_archive(request, year):
a_list = Article.objects.filter(pub_date__year=year)
context = {'year': year, 'article_list': a_list}
return render(request, 'news/year_archive.html', context)

1.6设计模版

Django可以通过DIRS指定一个查找模版的列表

使用base.html ,进行渲染

Total:  概述的内容大概就是这样子了,之前简单的了解一点Django,感觉还是很方便的,看了廖学费的webapp教程,讲解太少,怪自己太愚也没怎么看懂。Django文档写的很详细,至少第一节是这样子的,相比之下更简单方便的多,特别是对于数据库的创建和引用,就这样吧。It is time to study django. Come on !

1. Django概述的更多相关文章

  1. 第一章、Django概述

    目录 第一章.Django概述 一.了解软件开发架构 二.HTTP协议 三.响应状态码 四.请求方式 五.基于wsgiref模块 六..动静态网页 七.python三大主流web框架 八.安装Djan ...

  2. django概述

    一.django的特点 1.提供一体化的web解决方案,什么叫一体化:mvc 2.等你玩儿牛逼了可以拔插组件,换成自己顺手或者更牛逼的组件

  3. 【1】Django概述

    道生一,一生二,二生三,三生万物 无名天地之始,有名万物之母 ——老子 python程序web项目开发,是非常重要的一部分,Python为基础的web项目开发的框架有很多,django无疑是最强大we ...

  4. Django框架使用一 基本介绍,安装和建项篇

    Django概述 Django 是在快节奏的编辑环境中开发的,设计使得常见 Web 开发任务快速且容易;它可以编写一个数据驱动的Web应用程序,简单的说就是不需要开发者操作数据库. 设计数据模型 尽管 ...

  5. Django web 基础

    一.Django概述 Django大而全; 创建Django工程:django-admin startproject sitename 创建django之后生成的目录结构如下: Project Pro ...

  6. Ubuntu下Django初体验(三)——django初体验

    Django中的重要概念: 一次web访问的实质: 1. 客户发送http请求到web服务回 2. web服务器返回html页面给客户 Django概述: 1. URL配置             建 ...

  7. 初始Django

    Django概述 Django是什么 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C. Django的主要目标是使得开发复杂的 ...

  8. py库: django (web框架)

    http://www.imooc.com/learn/736 Python-走进Requests库 http://www.imooc.com/learn/790 django入门与实践 http:// ...

  9. Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】

     一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...

随机推荐

  1. Docker 推送镜像到hub.docker

    1.Docker镜像文件:lails.server.demo:1.0, 2.登录Docker:docker login[根据提示输入用户名/密码] 3.执行:docker push lails.ser ...

  2. 4.Python3运算符

    4.1算数运算符(以下假设变量a为10,变量b为21) 实例操作: print(3 + 5) #数字3与5相加 print(3 - 5) #数字3与5相减 print(3 * 5) #数字3与5相乘 ...

  3. [openjudge-搜索]单词接龙

    题目描述 描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙&q ...

  4. 转:C#使用Dotfuscator混淆代码的加密方法

    Author:flymorn Source:flymornCategories:C#编程 PostTime:2011-9-16 1:04:49 正 文:   C#编写的代码如果不进行一定程度的混淆和加 ...

  5. Spring Boot中JSON参数传递,后台实体接受问题

    1.json参数为json字符串 var data = { name: '超管不是11', password: '123456' }; $.ajax({ type:"post", ...

  6. Python RabbitMQ消息持久化

    RabbitMQ消息持久化:就是将队列中的消息永久的存放在队列中.   处理方案: # 在实例化时加入durable=True来确认消息的实例化,客户端服务端都要写 channel.queue_dec ...

  7. opencv学习之路(31)、GrabCut & FloodFill图像分割

    一.GrabCut 1.利用Rect做分割 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat ...

  8. day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型

    复习 ''' 流程控制 1.顺序结构.分支结构.循环结构 2.if分支结构 if 条件: 代码块 elif 条件: 代码块 else: 代码块 # 可以被if转换为False:0 | '' | Non ...

  9. .NET ActiveMQ类库

    ActiveMQ .NET类库 ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信. 0. 准备 使用Nuget ...

  10. 用bytomswap进行“跨链”资产转换

    bytom是专注资产领域的公有区块链平台,最近开发者社区基于比原做了一款资产转换平台.我们可以在上面通过自己现有的资产在比原上发行资产.然后达到资产转换的目的. 一. 以太币资产转换成比原上的资产 首 ...