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. php安装threads多线程扩展
  2. Symbol ES6 新增的一种值类型数据,表示一种绝不重复的值
  3. 在eclipse下如何安装下载好的插件
  4. 吐个槽,对VB6.0 还有VBS 说ByeBye
  5. 1) data-options
  6. java SimpleDateFormat非线程安全测试
  7. 【Qt】测测你对Qt的了解–Qt工具知多少
  8. 手把手教你把VIM改成一个集成开发环境
  9. android的快速开发框架集合
  10. js实现文本框溢出文字用省略号(...)表示
  11. Azure Powershell获取指定订阅下的虚拟机信息(ASM)
  12. %f使用时的注意事项
  13. volatile 到i++ 原子操作 详解
  14. Spark1.4从HDFS读取文件运行Java语言WordCounts
  15. 教你一招 | 用Python实现简易可拓展的规则引擎
  16. 【洛谷】【数论】P1876 开灯
  17. Beta冲刺随笔汇总
  18. 单源最短路——Dijkstra模板
  19. [UE4]迁移小地图到其他工程
  20. Java编程的逻辑 (72) - 显式条件

热门文章

  1. 开源 免费 java CMS - FreeCMS1.9 移动APP生成网站列表数据
  2. MySQL<数据库和表的基本操作>
  3. swift - UIToolbar 的用法
  4. org.apache.activemq.transport.InactivityIOException: Cannot send, channel has already failed
  5. 使用fetch出现unexpected end of input 解决方法
  6. @synthesize obj=_obj的意义详解 @property和@synthesize
  7. Django学习笔记 创建应用
  8. tomcat日志保存在哪里?
  9. C++ primer(十三)--类继承、构造函数成员初始化、虚函数、抽象基类
  10. 开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题