django基础 (二)Templates, Models, Admin

Templates介绍

什么是Templates

  • HTML文件;
  • 使用了django模板语言(Django Template Language, DTL);
  • 可以使用第三方模板(如Jinja2);
  • 使用其他模板的方法:
  • 在settings.py下,TEMPLATES=[]中的第一句‘BACKEND’值改为其他模板

步骤

  • 在APP的根目录下创建名叫templates的目录;
  • 在该目录下创建HTML文件;
  • 在views.py中返回render()
    render()通常传递三个参数:对象本身, html文件, 后台传递到前端的数据;
    刷新页面,如果报错:
    TemplateDoesNotExist at /index/blog/
    index.html
    解决方法:
    #settings.py#
    TEMPLATES = [{
    ‘DIRS’: [os.path.join(BASE_DIR, ‘newApp/templates’)],
    }

DTL初步使用

  • render()函数中支持一个dict类型参数;
  • 该字典是后台传递到模板的参数,key为参数名;
  • 在模板中使用{{参数名}}来直接使用;

注意事项
django查找template的顺序:

  • django按照INSTALLED_APPS中的添加顺序查找templates;
  • 不同APP下templates目录中的同名.html文件会造成冲突;

解决templates冲突方案:

  • 在APP的templates目录下创建以APP名为名称的目录;
  • 将html文件放入新创建的目录下;

Models介绍

django中的models是什么?

  • 通常,一个model对应数据库的一张数据表;
  • django中models以类的形式表现;
  • 它包含了一些基本字段以及数据的一些行为;

ORM

  • 对象关系映射(object relation mapping);
  • 实现了对象和数据库之间的映射;
  • 隐藏了数据访问的细节,不需要编写SQL语句。

步骤

字段创建

字段即类里面的属性(变量);
attr = models.CharField(max_length=64);

class Article(models.Model):
    title = models.CharField(max_length=32,default='title')
    conten = models.TextField(null=True)

关于各种字段以及各种字段的可选参数可以参照官方文档:
https://docs.djangoproject.com/en/1.10/ref/models/fields

步骤

  • 命令行中进入manage.py同级目录;
  • 执行 python manage.py makemigrations app名
  • python manage.py migrate

查看

  • django会自动在app/migrations/目录下生成移植文件;
  • 执行python manage.py sqlmigrate 应用名 文件id 查看SQL语句;
  • 默认sqlite3的数据库在项目根目录下db.sqlite3;

生成数据表

  • 查看并编辑db.sqlite3
  • 使用第三方软件;
  • SQLite Expert Peronal;轻量级,完全免费;
  • 插入一条数据;

页面呈现数据

后台步骤
views.py中import models

from . import models
def index(request):
    article = models.Article.objects.get(pk=1)  #获取主键为1的模型对象
    render(request, 'index.html', {'article': article})

前端步骤
模板可直接使用对象以及对象的“.”操作;

{{ article.title}}
{{ article.content }}

Admin简介

什么是admin?

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

配置admin
创建用户

python manage.py createsuperuser  #创建超级用户
Username (leave blank to use 'test'): admin
Email address:admin@admin.com
Password: AnthiLiu99  # django1.9以后不支持创建太过简单的密码
Password(again): AnthiLiu99

localhost:8000/admin/ #Admin入口
将管理界面语言改为简体中文:修改settings.py中 LANGUAGE_CODE = ’ zh_Hans’

配置应用
在应用下admin.py中引入自身的models模块(或里面的模型类);
编辑admin.py

from .models import Article
admin.site.register(Article)  # 把我们的模型类注册进去 

现在刷新一下页面就可以看到我们创建的内容。

修改数据
点击Article超链接进入Article列表页面;
点击任意一条数据,进入编辑页面修改;
编辑页面下方一排按钮可执行相应操作。

修改后台数据默认显示名称
步骤
在Article类下添加一个方法;
根据python版本选择的 str(self) 或 _unicode(self);
return self.title

def __str__(self):  # python 3.x
    return self.title
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值