Django 应用开发(2)

1.创建一个管理员用户

创建一个用于登录管理站点的用户

2.启动开发服务器

python manage.py runserver

打开浏览器访问本地域名中的/admin/

3.让poll应用在管理站点中可编辑

在polls/admin.py中编辑

4.修改界面

在polls/admin.py中编辑

 1 from django.contrib import admin
 2 from .models import Choice,Question
 3
 4 class ChoiceInline(admin.TabularInline):
 5     model = Choice
 6     extra = 3
 7
 8 class QuestionAdmin(admin.ModelAdmin):
 9     fieldsets = [
10         (None,{‘fields‘:[‘question‘]}),
11         (‘Date information‘,{‘fields‘:[‘pub_date‘],‘classes‘:[‘collapse‘]})
12     ]
13     inlines = [ChoiceInline]
14 admin.site.register(Question,QuestionAdmin)
15 # Register your models here.

自定义管理界面中的变更列表

admin.py

 1 from django.contrib import admin
 2 from .models import Choice,Question
 3
 4 class ChoiceInline(admin.TabularInline):
 5     model = Choice
 6     extra = 3
 7
 8 class QuestionAdmin(admin.ModelAdmin):
 9     list_display = (‘question‘,‘pub_date‘,‘was_published_recently‘)
10     fieldsets = [
11         (None,{‘fields‘:[‘question‘]}),
12         (‘Date information‘,{‘fields‘:[‘pub_date‘],‘classes‘:[‘collapse‘]})
13     ]
14     inlines = [ChoiceInline]
15     list_filter = [‘pub_date‘]
16     search_fields = [‘question‘]
17
18 admin.site.register(Question,QuestionAdmin)
19 # Register your models here.

models.py

 1 from __future__ import unicode_literals
 2
 3 import datetime
 4 from django.db import models
 5 from django.utils import timezone
 6
 7
 8 class Question(models.Model):
 9     question = models.CharField(max_length=200)
10     pub_date = models.DateTimeField(‘date published‘)
11
12     def __str__(self):
13         return self.question
14
15     def  was_published_recently(self):
16         return self.pub_date >=timezone.now() - datetime.timedelta(days=1)
17
18     was_published_recently.admin_order_field = ‘pub_date‘
19     was_published_recently.boolean = True
20     was_published_recently.short_description = ‘Published recently?‘
21
22
23 class Choice(models.Model):
24     poll  = models.ForeignKey(Question)
25     choice_text = models.CharField(max_length=200)
26     votes = models.IntegerField(default=0)
27
28     def  __str__(self):
29         return self.choice_text
30
31 # Create your models here.

界面:

自定义站点的外观

在templates中添加dirs选项

创建templates文件夹

在settings.py中添加。现在,在templates下创建一个名为admin的文件夹,然后从Django安装的原目录下(目录为django/contrib/admin/templates)将模板页面的源文件admin/base_site.html拷贝到这个文件夹里。并修改其中的html文件。

结果:

时间: 2024-08-05 23:02:14

Django 应用开发(2)的相关文章

七日Python之路--第十二天(Django Web 开发指南)

<Django Web 开发指南>.貌似使用Django1.0版本,基本内容差不多,细读无妨.地址:http://www.jb51.net/books/76079.html (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一个新的值为12的整数对象,而float(12)则会返回12.0. (2)其他序列操作符 连接(+),复制(*),以及检查是否是成员(in, not in) '**'.join('**')   或  '***%s***%d' % (str, int)

用python+django+twistd 开发一个属于自己的运维系统

开源的运维系统不少,比如nagios.zabbix.cati等等,但是遇到自己个性化的运维需求的时候,总是显的力不从心!最近在学习python,所以就考虑用python+django+twisted来定做一个完全个性化的运维系统. 运维系统有几个主要的功能:监控.分析.报警.更甚者直接根据分析的结果进行反应操作.而以上几点通过上述的框架可以比较容易的实现. 下面上图说明: 使用freemind整理了下思路: 下面是一些代码段,完整的代码下载见文档底部: Server: #!/usr/bin/en

Django 初探--Django的开发服务器及创建数据库(笔记)

1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. 在我们创建的Django_Pro项目的目录下,打开Dos命令行,启动内置服务器: manage.py runserver 默认情况下,使用命令manage.py runserver 启动内置服务器,默认使用本机8000端口,若需要使用其他端口(例如8001),则使用命令 manage.py runs

第一个 Django Project开发

本篇文章是 官网https://docs.djangoproject.com/en/1.7/intro/tutorial01/" 的实践版本.由于原文有较多的解释成分以及用英语书写不便于快速进入Django的开发.所以才有本文. Part 1. 环境搭建测试 如需转载请注明出处:*************************** 谢谢. 1. 环境 Ubuntu 13.10    # cat /etc/issue  进行查看 Python 3.3.2+   # python -V      

Django Web开发学习笔记(5)

第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等. 一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在. 例如,Django本身内建有一些app,例如注释系统和自动管理界面. app的一个关键点是它

Django Web开发学习笔记(4)

第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 Python 代码进行相应的修改. 站点设计的修改往往比底层 Python 代码的修改要频繁得多,因此如果可以在不进行 Python 代码修改的情况下变更设计,那将会方便得多. Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门

Django Web开发学习笔记(1)

一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>> bool(False) False (2)数值型 Python的数值型数据包含两类:int和float型数据,需要注意的是还有一个complex的类型,也就是复数类型 >>> a = complex(1,3) >>> a (1+3j) >>> b

Django框架开发中避免表单重复提交

Form表单做为web2.0时代的重要角色,也是我们与web网站进行数据交互的重要渠道,但是大家在web网站开发过程中,都会遇到一个问题,那就是如何避免表单重复提交,我们可不确定用户可在提交了一个表单后,是否有足够的耐心等待我们的程序加载完成,如果此时用户不耐烦的在前台重复刷新页面,那么就会造成数据重复提交.信息不准确,因此我们在程序设计时一定要规避这样的问题,接下来介绍一下在Django框架开发中如何避免此问题. 首先说明一下Http协议中两种非常常见的方法GET和POST. 1.GET方法往

Django web 开发指南 no such table:

在学习django web开发指南时,发布新博客点击save后会有error提示:no such table balabalabala... 百度了一下说重新运行manage.py syncdb 就可以,我试了还是报错,然后仔细看了下提示信息,发现是版本问题,并且他也给出了解决方法: 运行'manage.py makemigrations', 这样可以'make new migrations' 然后运行'manage.py migrate', 这样可以'apply them', 问题解决~

在 Django/Flask 开发服务器上使用 HTTPS

使用 Django 或 Flask 这种框架开发 web app 的时候一般都会用内建服务器开发和调试程序,等程序完成后再移交到生产环境部署.问题是这些内建服务器通常都不支持 HTTPS,我们想在开发的时候就能够使用和测试 HTTPS,不想还没测试就部署到生产环境,所以我们需要内建服务器能支持 HTTPS. 这个问题可以通过一个外部程序 stunnel 来解决,stunnel 的作用是通过 OpenSSL 库对 TCP 会话进行加密,建立起一个安全通道,保护没有加密功能或未加密的程序.其主要功能