Django最简单的类视图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/85834505

一 创建一个新的应用

(venv) E:\Django\mysite\mysite>python manage.py startapp course

二 配置应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
    'account',
    'password_reset',
    'article',
    'image',
    'sorl.thumbnail',
    'course',
]

三 配置URL

1 配置项目URL

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import TemplateView

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include("blog.urls", namespace="blog", app_name="blog")),
    url(r'^account/', include("account.urls", namespace='account', app_name='account')),
    url(r'^pwd_reset/', include("password_reset.urls", namespace='pwd_reset', app_name='pwd_reset')),
    url(r'^article/', include('article.urls', namespace='article', app_name='article')),
    url(r'^home/', TemplateView.as_view(template_name="home.html"), name="home"),
    # 图片的根URL
    url(r'^image/', include('image.urls', namespace='image', app_name='image')),
    url(r'^course/', include('course.urls', namespace='course', app_name='course')),
]

# 为每个上传的静态图片配置了URL地址
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

2 配置应用URL

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

urlpatterns = [
    url(r'about/$', TemplateView.as_view(template_name="course/about.html")),   
]

四 创建模板

{% extends "base.html" %}
{% block title %}学习网站{% endblock %}
{% block content %}
<div class="container">
  <h1 class="text-center">欢迎学习</h1>
<p class="text-center">本网站提供各种编程技能,供广大码农学习。</p>
<p class="text-center">QQ群号:798103175</p>
<h2 class="text-center">欢迎访问。</h2>
</div>
{% endblock %}

五 测试

1 浏览器输入:http://127.0.0.1:8000/course/about/

六 用最简单的视图类优化

1 在view.py中编写视图类

from django.views.generic import TemplateView
class AboutView(TemplateView):
    template_name = "course/about.html"

2 重写应用URL

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

urlpatterns = [
    url(r'about/$', AboutView.as_view(), name="about"),  
]

3 增加访问入口

<!--模板中声明引入静态文件的标签,只有使用它,static标签才能使用-->
{% load staticfiles %}
<div class="container">
    <nav class="navbar navbar-default" role="navigation">
        <div class="navbar-header">
            <a class="navbar-brand" href="https://blog.csdn.net/chengqiuming"><img src="{% static '/images/logo.png' %}" width="100px"></a>
	    </div>
	    <div>
            <ul class="nav navbar-nav" role="navigation">
                <li><a href="{% url 'home' %}">主页</a></li>
                <!--blog是urlpatterns中定义的namespace,blog_title是视图函数-->
                <li><a href="{% url 'blog:blog_title' %}">博客</a></li>
                <li><a href="{% url 'article:article_titles' %}">文章</a></li>
                <li><a href="{% url 'image:falls_images' %}">美图</a></li>
                <li><a href="{% url 'course:about' %}">关于本站</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right" style="margin-right:10px">
                {% if user.is_authenticated %}
                <li>
                    <div class="dropdown" style="margin-top:8px">
                        <button class='btn btn-default dropdown-toggle' type='button' id='dropdownMenu' data-toggle='dropdown'>{{ user.username }}<span class='caret'></span></button>
                        <ul class="dropdown-menu">
                            <li><a href="{% url 'account:password_change' %}">修改密码</a></li>
                            <li><a href="{% url 'account:my_information' %}">个人信息</a></li>
                            <li><a href="{% url 'article:article_column' %}">后台管理</a></li>
                        </ul>
                    </div>
                </li>
                <li><a href="#">{{ user.username }}</a></li>
                <li><a href="{% url 'account:user_logout' %}">退出</a></li>
                {% else %}
                <li><a href="{% url 'account:user_login' %}">登录</a></li>
                <li><a href="{% url 'account:user_register' %}">注册</a></li>
                {% endif %}
            </ul>
	    </div>
    </nav>
</div>

<script src="{% static 'js/jquery.js'%}"></script>
<script src="{% static 'js/bootstrap.js' %}"></script>

七 测试

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/85834505