设为首页 加入收藏

TOP

Django入门(二)
2017-09-30 17:23:53 】 浏览:6299
Tags:Django 入门

创建一个管理员用户:python manage.py creatsuperuser

然后按提示信息输入用户名、邮箱、密码

启动服务器,通过“127.0.0.1:8000/admin”访问,输入上面创建的用户名、密码完成登录

进入管理站点,默认可以对groups(组)、users(用户)进行管理

管理界面本地化

编辑settings.py文件,设置编码、时区

LANGUAGE_CODE = 'zh-Hans'#'en-us'

TIME_ZONE = 'Asia/Shanghai'#'UTC'

向admin注册booktest模型

打开booktest/admin.py文件,注册模型

from django.contrib import admin
from .models import BookInfo, HeroInfo
# Register your models here.

# 注册
admin.site.register(BookInfo)
admin.site.register(HeroInfo)

刷新管理页面,可以对BookInfo的数据进行增、删、改、查等操作

自定义管理页面

from django.contrib import admin
from .models import BookInfo, HeroInfo
# Register your models here.

# HeroInfo采用关联注册
class HeroInfoInline(admin.TabularInline):
    model = HeroInfo
    extra = 2

# BookInfo管理类
class BookInfoAdmin(admin.ModelAdmin):
    # 列表页属性
    # 显示字段:可以点击列头进行排序
    list_display = ['pk', 'btitle', 'bpub_date']
    # 过滤字段:过滤框会显示在右侧
    list_filter = ['btitle']
    # 搜索字段:搜索框会出现在左上侧
    search_fields = ['btitle']
    # 分页:分页框会出现在左下侧
    list_per_page = 10
    # 添加、修改页属性
    # 属性的先后顺序
    # fields = ['bpub_date', 'btitle']
    # 属性分组
    fieldsets = [
        ('basic', {'fields': ['btitle']}),
        ('more', {'fields': ['bpub_date']})
    ]

    # 关联
    inlines = [HeroInfoInline]

# 注册
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo)

视图

在Django中,视图对web请求进行回应

视图接收request对象作为第一个参数,包含了请求的信息

视图就是一个Python函数,被定义在views.py中

from django.http import HttpResponse

# Create your views here.

def index(request):

    return HttpResponse("index")

def detail(request, bid):

    return HttpResponse("detail %s" % bid)

定义完视图后,需要配置URLconf,否则无法处理请求

URLconf

在Django中,定义URLconf包括正则表达式、视图两个部分

Django使用正则表达式匹配请求的URL,一旦匹配成功,则调用应用的视图

注意:只匹配路径部分,即除去域名、参数后的字符串

test1/urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('booktest.urls')),
]

booktest/urls.py

#!/usr/bin/python3
# -*- coding:utf-8 -*-

"""
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
作者:mayi
博客:http://www.cnblogs.com/mayi0312/
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
"""

from django.conf.urls import url
from .import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^bid=(\d+)', views.detail),
]

模板

模板是html页面,可以根据视图中传递的数据填充值

创建模板的目录如下图:

修改settings.py文件,设置TEMPLATES的DIRS值

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

在模板中访问视图传递的数据

{{输出值,可以是变量,也可以是对象.属性}}
{%执行代码段%}

定义index.html模板

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<B>图书列表</B>
<ul>
    {%for book in book_list%}
    <li><a href="bid={{book.id}}">{{book.btitle}}</a></li>
    {%endfor%}
</ul>
</body>
</html>

定义detail.html模板

<!DOCTYPE html>
<html>
<
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python零基础学习系列之二--Pytho.. 下一篇算法学习(一)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目