网上看了个例子,但是自己却运行不同,最后终于知道了原因,记录下来。原来没有给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帮我们搞定了一切。

使用Django创建简易Blog的更多相关文章

  1. django开发个人简易Blog——数据模型

    提到数据模型,一定要说一下MVC,MVC框架是现代web开发中最流行的开发框架,它将数据与业务逻辑分开,减小了应用之间的高度耦合.个人非常喜欢MVC开发框架,除了具有上述特性,它使得web开发变得非常 ...

  2. Django初体验——搭建简易blog

    前几天在网上看到了篇采用Django搭建简易博客的视频,好奇心驱使也就点进去学了下,毕竟自己对于Django是无比敬畏的,并不是很了解,来次初体验. 本文的操作环境:ubuntu.python2.7. ...

  3. django创建blog

    如果本文看不懂的,去看的我视频吧!http://www.testpub.cn/ ------------------------------------------- Django 自称是" ...

  4. 用django搭建一个简易blog系统(翻译)(四)

    12. Create the templates 你需要做三件事来去掉TemplateDoesNotExist错误 第一件,创建下面目录 * netmag/netmag/templates * net ...

  5. 用django搭建一个简易blog系统(翻译)(三)

    06. Connecting the Django admin to the blog app Django 本身就带有一个应用叫作Admin,而且它是一个很好的工具 在这一部分,我们将要激活admi ...

  6. 用django搭建一个简易blog系统(翻译)(二)

    03. Starting the blog app 在这部分,将要为你的project创建一个blog 应用,通过编辑setting.py文件,并把它添加到INSTALLED_APPS. 在你的命令行 ...

  7. 用django搭建一个简易blog系统(翻译)(一)

    Django 入门 原始网址: http://www.creativebloq.com/netmag/get-started-django-7132932 代码:https://github.com/ ...

  8. Django创建一个简单的blog

    1. 使用django-admin.py 创建mysite项目 sunny@sunny-ThinkPad-T450:~/PycharmProjects$ django-admin.py startpr ...

  9. 从开发到部署,使用django创建一个简单可用的个人博客

    本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...

随机推荐

  1. Netduino开篇

    很久没写博客了,最近看到一些朋友,如一直在做micro framework的叶帆,如成都智能盒子公司的奈何他们一直在为物联网做着技术推广工作.为了及时向他们学习,俺也写写一些博客,做一下简单的技术推广 ...

  2. C++学习之路—继承与派生(二):派生类的构造函数与析构函数

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 由于基类的构造函数和析构函数是不能被继承的,所以 ...

  3. JDBC操作数据库的学习(2)

    在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...

  4. HTTP数据包头解析(简单清楚)

    [转]HTTP请求模型和头信息参考 参考: http://blog.csdn.net/baggio785/archive/2006/04/13/661410.aspx模型: http://blog.c ...

  5. 修改XPMenu让ToolButton在Down=True时正确显示

    XPMenu是一个不错的程序界面效果控件,但它也存在不少不足之处.我最近又对它作了一点修改. 原因是我在程序里有一个ToolButton,其Style=tbsButton,当Down=True时,XP ...

  6. hdu1114

    完全背包的水题,不过今天才学动态规划,就这样啦……hahahah!!! 完全背包跟普通背包的区别是普通背包从后往前循环,以防止被替换 完全背包是从前往后循环,后面的状态会跟着之前状态的改变而改变…… ...

  7. Python+Django+SAE系列教程15-----输出非HTML内容(图片/PDF)

    一个Django视图函数 必须 接受一个HttpRequest 实例作为它的第一个參数 返回一个HttpResponse 实例 从一个视图返回一个非HTML 内容的关键是在构造一个 HttpRespo ...

  8. setOnClickListener报空指针异常

    1.异常提示: 2.错误原因: 先看代码: public class MainActivity extends ActionBarActivity { private Button btn_test; ...

  9. 第二章 IoC Setter注入

    Setter注入又称为属性注入.是通过属性的setXXX()方法来注入Bean的属性值或依赖对象.由于Setter注入具有可选择性和灵活性高的优点,因此Setter注入是实际应用中最常用的注入方式. ...

  10. 【IUML】支持向量机SVM

    从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...