Django 后台
与后台相关文件:每个app中的 admin.py 文件与后台相关。

一,新建一个 名称为 HelloDjango 的项目
  1. django-admin.py startproject HelloDjango


二,新建一个 叫做 blog 的app
# 进入 HelloDjango 文件夹
  1. cd HelloDjango

 
# 创建 blog 这个 app
  1. python manage.py startapp blog



三,修改 blog 文件夹中的 models.py

  1. # coding:utf-8
  2. from django.db import models
  3. class Article(models.Model):
  4.     title = models.CharField(u'标题', max_length=256)
  5.     content = models.TextField(u'内容')
  6.  
  7.     pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable = True)
  8.     update_time = models.DateTimeField(u'更新时间',auto_now=True, null=True)

四,把 blog 加入到settings.py中的INSTALLED_APPS中
  1. INSTALLED_APPS = (
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8.  
  9. 'blog',
  10. )

提示:INSTALLED_APPS 是一个元组,每次加入新的app的时候,在后面都加一个逗号,这是一个好习惯。

五,同步所有的数据表
注意:Django 1.7及以上的版本需要用以下命令
  1. python manage.py makemigrations
  2. python manage.py migrate

=====>
如果是 Django 不主动提示创建管理员(Django 1.9不提示)用下面的命令创建一个帐号
1、首先我们要新建一个用户名,用来登陆管理网站,可以使用如下命令:
 python manage.py createsuperuser

2、输入想要使用的用户名:
Username (leave blank to use 'administrator'): user01
3、输入email:
Email address: (在这里输入你的自己的邮箱帐号)
4、输入密码,需要输入两次,并且输入密码时不会显示出来:
Password:
Password (again):
当两次密码都相同的时候,就会提示超级帐号创建成功。
Superuser created successfully.
5、运行服务:
python manage.py runserver

6、浏览器地址栏输入:http://127.0.0.1:8000/admin


六,修改 admin.py 
进入 blog 文件夹,修改 admin.py 文件(如果没有新建一个),内容如下
  1. from django.contrib import admin
  2. from .models import Article
  3. admin.site.register(Article)
只需要这三行代码,我们就可以拥有一个强大的后台!
提示:urls.py中关于 admin的已经默认开启

七,打开 开发服务器
python manage.py runserver
# 如果提示 8000 端口已经被占用,可以用 python manage.py runserver 8001 以此类推。

访问 http://localhost:8000/admin/ 输入设定的帐号和密码, 就可以看到:

点击 Articles,动手输入 添加几篇文章,就可以看到:

我们会发现所有的文章都是叫 Article object,这样肯定不好,比如我们要修改,如何知道要修改哪个呢?

我们修改一下 blog 中的models.py

1
2
3
4
5
6
7
8
9
10
11
12
13
# coding:utf-8
from django.db import models
 
 
class Article(models.Model):
    title = models.CharField(u'标题', max_length=256)
    content = models.TextField(u'内容')
 
    pub_date = models.DateTimeField(u'发表时间', auto_now_add=True, editable = True)
    update_time = models.DateTimeField(u'更新时间',auto_now=True, null=True)
 
    def __unicode__(self):# 在Python3中用 __str__ 代替 __unicode__  #新添加;
        return self.title

我们加了一个 __unicode__ 函数,刷新后台网页,会看到:

所以推荐定义 Model 的时候 写一个 __unicode__ 函数(或 __str__函数)

1.1 、Django 后台的更多相关文章

  1. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

  2. Django后台设置--遇到的问题与解决方案

    1. 后台如何管理项目中的models 新建的Django工程会自动引用admin 应用,新建后台可以通过 createsuperuser 命令建立后台admin超级管理员,我遇到的第一个问题,就是如 ...

  3. Django 后台支持中文方法

    今天遇到的一个问题,mark一下: django后台可以支持中文界面,一开始一直纠结于settings.py 中 LANGUAGE_CODE = 'en-us'中的'en-us'该更改成什么.zh-c ...

  4. 强大的Django后台管理

    Django 后台 django的后台我们只要加少些代码,就可以实现强大的功能.与后台相关文件:每个app中的 admin.py 文件与后台相关 下面示例是做一个后台添加博客文章的例子: 新建一个 名 ...

  5. django后台导入excel文件

    1.django 如何从后台上传excel中批量解析数据 要从django后台导入的excel中批量解析数据,举一个例子,我们向后抬批量导入svn历史数据数据格式 假设excel表中有4列,每列分别是 ...

  6. django后台获取相同name名的数据

    django后台获取相同name名的post数据html: <form method="post"> <input type="text" n ...

  7. jquery ajax 提交form表单 以及django后台接受

    HTML <form id="project_file_upload" enctype="multipart/form-data" > <di ...

  8. 前台通过form表单向Django后台传输数据,Django处理后返回给前台

    摘要:Django前后台数据传递 通过action将数据传输给apitest这个地址,使用get方法传递,此处需要传递name="request_method"的下拉列表值和nam ...

  9. django后台管理系统(admin)的简单使用

    目录 django后台管理系统的使用 检查配置文件 检查根urls.py文件 启动项目,浏览器输入ip端口/admin 如: 127.0.0.1/8000/admin 回车 注册后台管理系统超级管理 ...

随机推荐

  1. easyui_datagrid合并行单击某行选中所有

    实现如下功能: 代码: <table id="dg" class="easyui-datagrid" title="Merge Cells fo ...

  2. android学习之--网格视图(GridView)和图像切换器(ImageSwitcher)

             GridView用于在界面上按行.列分布显示多个组件.GridView和ListView有共同父类:AbsListView. GridView与ListView的差别在于:ListV ...

  3. Python 入门(六)Dict和Set类型

    什么是dict 我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字: ['Adam', 'Lisa', 'Bart'] 或者考试的成绩列表: [95, 85, 59] ...

  4. oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库

    我从源库导出数据PCK报错如下:

  5. 使用rlwrap调用sqlplus中历史命令

    此文来自http://www.cnblogs.com/mchina/archive/2013/03/08/2934473.html 在此谢谢原创作者. 在Linux中运行SQL*Plus,不能调用历史 ...

  6. java框架---->zxing框架的使用

    今天我们就来学习一下zxing的用法,这里只涉及到java se的部分. zxing的学习 如果在java se环境中使用zxing,需要在maven的pom.xml中添加依赖: <depend ...

  7. Android 让GridView的高度为Wrap_content根据内容自适应高度

    From:http://www.jayway.com/2012/10/04/how-to-make-the-height-of-a-gridview-wrap-its-content/ 如果把Grid ...

  8. 问答项目---登陆账号密码登陆做AJAX异步校验

    异步验证管理员帐号方法: /* 异步验证管理员帐号 */ public function checkAccount(){ if(!IS_AJAX){echo "页面不存在";die ...

  9. [python] python单元测试经验总结

    python写单元大多数都会用到unittest和mock,测试代码覆盖率都会用到coverage,最后再用nose把所有的东西都串起来,这样每次出版本,都能把整个项目的单元测试都运行一遍. Unit ...

  10. 【Object.prototype.toString.call()】---判断某个对象属于哪种内置类型------【巷子】

    预热:目前我们知道区分对象类型的方式有三种 :type   instanceof   Object.prototype.toString.call. 那么这三种的区别是什么呢? type 在 Java ...