Django中的一些基础配置
urls.py里面的path()参数
- route
- view(指定特定的视图函数)
- kwargs(任意关键字参数可以作为一个字典传递给目标视图函数)
- name(可以在Django的任意地方唯一地引用它,尤其是在模板中)
settings.py
INSTALLED_APPS默认包含了一些Django的自带应用:
- django.contrib.admin 管理员站点
- django.contrib.auth 认证授权系统
- django.contrib.contenttypes 内容类型框架
- django.contrib.sessions 会话框架
- django.contrib.messages消息框架
- django.contrib.staticfiles 管理静态文件的框架
默认开启的某些应用至少需要一个数据表。
#使用交互式python命令行尝试django创建的各种API
python manage.py shell
>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>
# <QuerySet [<Question: Question object (1)>]>对于我们了解这个对象的细节没有帮助。所以在models.py里面给每个类增加__str__()方法
from django.db import models
class Question(models.Model):
#...
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
给模型增加__str__()
方法很重要,这不仅能给命令行里使用带来方便,Django自动生成的admin里也使用这个方法来表示对象。
>>> from polls.models import Choice, Question
# Make sure our __str__() addition worked.
>>> Question.objects.all()
<QuerySet [<Question: What's up?>]>
# Make sure our custom method worked.
>>> q = Question.objects.get(pk=1)
>>> q.was_published_recently()
True
Django管理页面
- 创建管理员账号
python manage.py createsuperuser
- 在管理页面加入我们自己的应用
polls/admin.py
from django.contrib import admin
from .models import Question
admin.site.register(Question)