zoukankan      html  css  js  c++  java
  • Django进阶(2)

    1.在D盘创建mysite工程项目:  django-admin startproject mysite

    manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
    
    settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
    
    urls.py ----- 负责把URL模式映射到应用程序。

    2.在mysite下创建blog应用:

    D:mysite> cd mysite
    D:mysite> python manage.py startapp blog

    3.初始化admin后台数据库,admin是Django自带的一个后台管理系统:(yes,需要设置用户名和密码)

    D:mysite> python manage.py syncdb

    4.添加blog应用,打开mysite/mysite/settings.py文件,在末尾添加blog应用:

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    )

    5.启动Django项目服务,访问后台管理:

    D:mysite> python manage.py runserver
    浏览器访问:http://127.0.0.1:8000/admin/

    输入用户名和密码,访问后台数据库管理界面。

    6.设计Model,即设计数据库表。

        打开blog目录下的models.py文件,这是我们定义blog数据结构的地方。打开mysite/blog/models.py 文件进行修改:

    from django.db import models
    from django.contrib import admin
    
    # Create your models here.
    class BlogsPost(models.Model):
        title = models.CharField(max_length = 150)
        body = models.TextField()
        timestamp = models.DateTimeField()
    
    admin.site.register(BlogsPost)

    再次初始化数据库:

    python manage.py makemigrations blog
    
    python manage.py syncdb

    再次runserver启动服务,访问后台管理界面,创建文章,选择+Add,输入博客标题、正文、日期时间,点击save创建博客。

    7.设置admin的BlogsPost界面,打开mysite/blog/models.py 文件。

     创建BlogPostAdmin类,继承admin.ModelAdmin父类,以列表的形式显示BlogsPost的标题和时间,修改如下:

    from django.db import models
    from django.contrib import admin
    
    # Create your models here.
    class BlogsPost(models.Model):
        title = models.CharField(max_length = 150)
        body = models.TextField()
        timestamp = models.DateTimeField()
    
    class BlogPostAdmin(admin.ModelAdmin):
        list_display = ('title','timestamp')
        
    admin.site.register(BlogsPost,BlogPostAdmin)

    8.创建blog的公共部分:

    对于Django,一个页面具有三个典型的组件:

    模板(template):模板负责把传递进来的信息显示出来。

    视图(view):视图负责从数据库获取需要显示的信息。

    链接(URL):它负责把收到的请求和你的试图函数匹配,有时候也会向视图传递一些参数。

    9.创建blog模板(template).

     在blog项目下创建templates目录(mysite/blog/templates/),在目录下创建模板文件index.html,内容如下:

    {% for blog in blog_list %}
        <h2>{{ blog.title }}</h2>
        <p>{{ blog.timestamp }}</p>
        <p>{{ blog.body }}</p>
    {% endfor%}

    10.创建blog视图(view).

      打开mysite/blog/views.py文件:

    #coding=utf-8
    from django.shortcuts import render
    from blog.models import BlogsPost
    from django.shortcuts import render_to_response
    
    # Create your views here.
    def index(request):
        blog_list = BlogsPost.objects.all()                                #获取数据库里面所拥有BlogPost对象
        return render_to_response('index.html',{'blog_list':blog_list})    #render_to_response()返回一个页面,包括index.html和相关数据库中的数据

    11.创建blog链接(URL).

      在mysite/urls.py文件里添加blog的url:

    #coding=utf-8
    from django.conf.urls import patterns, include, url
    from django.contrib import admin
    
    urlpatterns = patterns('',
        url(r'^admin/', include(admin.site.urls)),
        url(r'^blog/', 'blog.views.index'),
    )

    启动服务python manage.py runserver ,访问http://127.0.0.1:8000/blog/,即可看见创建好的页面。

    12.添加样式。

    在mysite/blog/templates目录里创建base.html的模板:

    <html>
          <style type="text/css">
            body{color:#efd;background:#453;padding:0 5em;margin:0}
            h1{padding:2em 1em;background:#675}
            h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
            p{margin:1em 0}
          </style>
         
          <body>
            <h1>I am AbelSu</h1>
            <h3>人面不知何处去,桃花依旧笑春风</h3>
            {% block content %}
            {% endblock %}
          </body>
    </html>

    修改index.html模板,让它引用base.html模板和它的“content”块。

    {% extends "base.html" %}
      {% block content %}
          {% for blog in blog_list %}
          <h2>{{  blog.title }}</h2>
          <p>{{ blog.timestamp | date:"1,F jS"}}</p>
          <p>{{ blog.body }}</p>
          {% endfor %}
      {% endblock %}

    刷新界面后,如下图:

    github:https://github.com/AbelSu131/mysite

  • 相关阅读:
    bzoj 4012: [HNOI2015]开店
    POJ 1054 The Troublesome Frog
    POJ 3171 Cleaning Shifts
    POJ 3411 Paid Roads
    POJ 3045 Cow Acrobats
    POJ 1742 Coins
    POJ 3181 Dollar Dayz
    POJ 3040 Allowance
    POJ 3666 Making the Grade
    洛谷 P3657 [USACO17FEB]Why Did the Cow Cross the Road II P
  • 原文地址:https://www.cnblogs.com/abelsu/p/4967671.html
Copyright © 2011-2022 走看看