zoukankan      html  css  js  c++  java
  • 使用Django创建简易Blog

    网上看了个例子,但是自己却运行不同,最后终于知道了原因,记录下来。原来没有给settings.py里的INSTALLED_APPS添加blog。就像这样:

    这是一个手把手的实例教程,本来学习笔记一样,高手请飘过!!!

    准备:
    使用python27
    django 1.4
    操作系统 win7 64bit

    第一步:
    打开cmd输入命令 D:定位到D盘。
    第二步: 在cmd中再输入

    1
    python D:/python27/Script/django-admin.py startproject mysite

    如果项目创建成功。在D盘中应该可以看到多了一个mysite文件夹。
    这个文件夹的结构应该是如下的:

    1
    2
    3
    4
    5
    6
    7
    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    为了更好地继续这个教程,我们把最外的文件夹mysite改为djangosite
    也就是说改为这样的结构:

    1
    2
    3
    4
    5
    6
    7
    djangosite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    第三步:安装后台管理系统

    先连接数据库,这里我使用MySQL数据库。
    先到mysite文件夹下打开settings.py文件,找到

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': '',                      # Or path to database file if using sqlite3.
            'USER': '',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
        }
    }

    我在phpmyadmin工具中创建了一个数据库叫django,并且我的数据库是没有密码的,所以我这样写:

    我在phpmyadmin工具中创建了一个数据库叫django,并且我的数据库是没有密码的,所以我这样写:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'django',                      # Or path to database file if using sqlite3.
            'USER': 'root',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
        }
    }

    再找到这两行,

    1
    2
    #'django.contrib.admin',
    #'django.contrib.admindocs',

    把这两行前面的#号去掉。
    再打开urls.py文件,把

    1
    2
    3
    4
    #from django.contrib import admin
    #admin.autodiscover()
    #url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    #url(r'^admin/', include(admin.site.urls)),

    找到这几行,也把前面的#号去掉。

    到了这里,先运行MySQL数据库,再打开cmd,定位到djangosite目录下,输入命令:

    1
    python manage.py runserver

    运行服务器
    这时如果你看到:

    Validating models…

    o errors found …

    等字样,说明你已经成功把django服务器运行起来了。

    到了这里,再打开另外一个cmd窗口,再输入命令:

    1
    python manage.py syncdb

    这里会提示你是否创建一个超级用户,输入yes,再输入email,和密码,当超级用户创建成功了的时候,再到浏览器里输入http://127.0.0.1:8000/admin这时就可以进行站点管理了!

    第四步:创建blog app
    到了这里,是时候创建我们的blog app的时候了。
    在cmd窗口中输入:

    1
    python manage.py startapp blog

    如果操作成功,你会在djangosite文件夹下看到已经多了一个叫blog的文件夹,里面包含如下文件:

    1
    2
    3
    4
    5
    blog/
        __init__.py
        models.py
        tests.py
        views.py

    第五步: 创建模型
    打开blog文件夹下的models.py文件。创建两个模型以及注册后台的管理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    from django.db import models
    from blog.models import *
    from django.contrib import admin
     
    # Create your models here.
     
    class Post(models.Model):
        title = models.CharField(max_length=64)
        pub_date = models.DateTimeField()
        author = models.ForeignKey('Poster')
        content = models.TextField()
        def __unicode__(self):
            return self.title
     
    class Poster(models.Model):
        gender_choices = (
            ('M','Male'),
            ('F','Female')
        )
        name = models.CharField(max_length=30)
        email = models.EmailField()
        age = models.IntegerField()
        gender = models.CharField(max_length=1,choices = gender_choices)
        website = models.URLField()
        def __unicode__(self):
            return self.name
        class Meta:
            verbose_name = "Writer"
            ordering = ['age']
     
    class PostAdmin(admin.ModelAdmin):
        list_display = ('title','author','pub_date')
        search_fields = ('title','author','pubdate')
     
    class PosterAdmin(admin.ModelAdmin):
        list_display = ('name', 'email', 'website','gender')
        search_fields = ('name', 'email','age')
     
    admin.site.register(Post, PostAdmin)
    admin.site.register(Poster, PosterAdmin)

    保存文件,再到cmd中输入:

    1
    python manage.py syncdb

    这里再到管理后台看看,是不是看到奇迹了!在这里我们已经可以添加作者和文章了,都不用我们去创建数据库,django帮我们搞定了一切。

  • 相关阅读:
    全国最全的省,市,县,电话号前缀,邮编数据
    数组的高级用法
    Maven Project configuration is not up-to-date with pom.xml错误解决方法
    HighCharts开发说明
    Java基础复习之二:运算符,键盘录入,流程控制语句,if语句,三元运算
    Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
    ehcache 缓存技术
    Write operations are not allowed in read-only mode
    浮点运算与boost.multiprecision
    关于OpenCASCADE数组序列的起始值
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/hahahhaha.html
Copyright © 2011-2022 走看看