【Django入门】学习笔记02

Admin##

介绍###

  • Admin是Django自带的一个功能强大的自动化数据管理界面
  • 被授权的用户可以直接在Admin中管理数据库
  • Django提供了许多针对Admin的定制功能

配置###

  • 创建超级用户
python manage.py createsuperuser
  • 访问Admin
    地址为localhost:8000/admin/
  • 界面汉化
    修改settings.py中LANGUAGE_CODE = 'zh-hans'
  • 配置应用
  1. 在应用下admin.py中引入自身的models模块(模块类)
  2. 编辑admin.py,加入
admin.site.register(models.YourClassName)
  • 修改数据默认显示名称
  1. 在Article类下添加一个方法
  2. 根据Python版本选择_str_(self)(python3)或者_unicode_(self)(python2)
  3. return self.title

例子:博客开发##

页面概况###

  • 博客主页面
  • 博客文章内容页面
  • 博客撰写页面

主页面内容###

  • 文章标题列表(超链接)
  • 发表博客按钮(超链接)

列表编写思路####

  • 取出数据库所有文章对象
  • 将文章对象打包成列表,传递到前端
  • 前端页面把文章以标题超链接的形式列出

模板For循环####

  • {% for xx in xx s%}
  • HTML语句
  • {% endfor %}

博客文章页面###

  • 标题
  • 文章内容
  • 修改文章按钮(超链接)

URL传递参数####

  • 参数写在响应函数中的request后,可以有默认值
  • URL正则表达式
'article.(?P<article_id>[0-9]+)/'
  • URL正则中的组名必须和参数名一致

超链接目标地址####

  • href后面是目标地址
  • template中可以用"{%url 'app_name:url_name' param%}"
  • 其中app_name和url_name都在url中配置

再配URL####

  • url函数的名称参数

根urls,写在include()的第二个参数位置,namespace = 'blog'
应用下则写在url()的第三个参数位置,name = 'article'
主要取决于是否使用include引用了另一个url配置文件

博客撰写页面###

  • 标题编辑栏
  • 文章内容编辑区域
  • 提交按钮

编辑响应函数####

  • 使用request.POST.get['参数名']获取表单数据
  • 使用models.Article.objects.create(title,content)创建对象

修改文章###

两个编辑页面的区别####

  • 新文章为空,修改文章有内容
  • 修改文章页面有文章对象
  • 文章ID不同

修改数据####

  • article.title = title
  • article.save()

其他补充##

Templates过滤器###

介绍####

  • 写在模板中,属于Django模板语言
  • 可以修改模板中的变量,从而显示不同的内容

使用方法####

  • {{value|filter1|filter2|..}}

例子:{{list_nums|length}}

Django Shell###

介绍####

  • 一个Python的交互式命令行程序
  • 可以自动引入项目环境
  • 可以使用与项目进行交互

使用####

 python manage.py shell
 from blog.models import Article
 Article.objects.all()

用途####

  • 进行调试
  • 测试未知方法

Admin###

创建admin配置类####

  • 打开admin.py
  • class ArticleAdmin(admin.ModelAdmin)
  • 注册:admin.site.register(Article,ArticleAdmin)

显示其他字串####

  • list_display = ('title', 'content',)
  • list_display同时支持tuple和list

显示发布时期####

  • pub_time = models.DateTimeField(auto_now=True)
  • 修改完后需要移植数据(见之前笔记)

过滤器####

  • list_filter = ('pub_time',)

(完)

原文地址:https://www.cnblogs.com/shuibeng/p/django02.html