zoukankan      html  css  js  c++  java
  • Django后台

    Django的后台,只需要添加少量代码就可以实现一个强大的后台功能

    1、新建项目(略)

    2、新建一个APP(略)

    3、修改APP的下的models.py

    #coding:utf8

    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

    如何兼容python2.x和python3.x呢?

    # coding:utf-8
    from __future__ import unicode_literals

    from django.db import models
    from django.utils.encoding import python_2_unicode_compatible

      @python_2_unicode_compatible
      class Article(models.Model):
      title = models.CharField('标题', max_length=256)
      content = models.TextField('内容')
      pub_date = models.DateTimeField('发表时间', auto_now_add=True, editable = True)
      update_time = models.DateTimeField('更新时间',auto_now=True, null=True)
      def __str__(self):
        return self.title

    python_2_unicode_compatible 会自动做一些处理去适应python不同的版本,本例中的 unicode_literals 可以让python2.x 也像 python3 那个处理 unicode 字符,以便有更好地兼容性。

    4、添加APP到settings.py下的INSTALLED_APPS里

    INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'APP',
    )

    5、同步数据库

    python manage.py syncdb

    可以看到:

    Creating tables ...

    Creating table django_admin_log

    Creating table auth_permission

    Creating table auth_group_permissions

    Creating table auth_group

    Creating table auth_user_groups

    Creating table auth_user_user_permissions

    Creating table auth_user

    Creating table django_content_type

    Creating table django_session

    Creating table blog_article

    You just installed Django's auth system, which means you don't have any superusers defined.

    Would you like to create one now? (yes/no): yes

    Username (leave blank to use 'tu'): tu

    Email address:

    Password:

    Password (again):

    Superuser created successfully.

    Installing custom SQL ...

    Installing indexes ...

    Installed 0 object(s) from 0 fixture(s)

    如果不提示创建管理员账户,可以手工创建(Django1.9不会自动创建)

    python manage.py createsuperuser

    6、修改admin.py

    进入 APP 文件夹,修改 admin.py 文件(如果没有新建一个),内容如下 

    from django.contrib import admin
    from .models import Article
    admin.site.register(Article)

    只需要三行代码,就实现了一个强大的后台

    7、启动服务器

    Python manage.py runserver 0.0.0.0:80

    打开浏览器输入链接地址,输入用户名和密码,就可以看到

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

    8、在列表显示与字段相关的其它内容

    后台已经基本上做出来了,可是如果我们还需要显示一些其它的fields

    from django.contrib import admin
    from .models import Article
    class ArticleAdmin(admin.ModelAdmin):
      list_display = ('title','pub_date','update_time',)
    admin.site.register(Article,ArticleAdmin)

    list_display 就是来配置要显示的字段的,当然也可以显示非字段内容,或者字段相关的内容,比如:

    class Person(models.Model):
      first_name = models.CharField(max_length=50)
      last_name = models.CharField(max_length=50)
      def my_property(self):
        return self.first_name + ' ' + self.last_name
      my_property.short_description = "Full name of the person"
      full_name = property(my_property)

    在admin.py中

    from django.contrib import admin
    from .models import Article, Person
    class ArticleAdmin(admin.ModelAdmin):
      list_display = ('title', 'pub_date', 'update_time',)
    class PersonAdmin(admin.ModelAdmin):
      list_display = ('full_name',)
    admin.site.register(Article, ArticleAdmin)
    admin.site.register(Person, PersonAdmin)


      

  • 相关阅读:
    [leetcode]Search for a Range
    Codeforces 432 D. Prefixes and Suffixes
    FZU2127:养鸡场
    安德鲁斯----多媒体编程
    hive RegexSerDe View
    Android 随着输入框控件的清除功能ClearEditText,抄IOS输入框
    Eclipse——热键&Help
    图像形态学操作—腐蚀扩展深度
    基于速度学习机的局部感受野
    Qt:使用Model-View,动态的加载显示数据
  • 原文地址:https://www.cnblogs.com/chaoe/p/5991909.html
Copyright © 2011-2022 走看看