Python一日一练101----Django创建简易博客(上)

时间:2022-01-30 22:03:02

安装Django

1.因为Django本身是由Python编写,所以先要安装Python。

下载地址(可以根据读者当前版本自行下载):http://www.python.org/download/releases/3.3.4/
Django的下载地址(Django 1.6x以上版本已经完全兼容Python3x):https://www.djangoproject.com/download/

2.Django下载后为压缩包,解压缩跟Python放在同一个根目录,在cmd下进入到Django-1.7.2(读者可能版本不同)目录,执行python setup.py install,然后开始安装,Django将要被安装到Python的Lib下site-packages。

Python一日一练101----Django创建简易博客(上)

创建项目

在CMD中使用下面的命令创建项目:
django-admin startproject mysite


创建应用


在一个项目中可以创建多个应用。接下来我将创建一个blog应用,在项目文件夹下输入python manage.py startapp blog
Python一日一练101----Django创建简易博客(上)
就像创建项目的时候一样, 创建应用也会自动生成若干文件。
接下要通过编辑 settings.py文件告诉Django这个app是项目的一部分。
在setting.py文件中找到INTALLED_APPS元组,把app写入这个元组
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', #将app写入元组
)

设计Model

MySQL与SQLite是关系型数据库。但在Django的帮助下,我们不用直接编写SQL语句。Django将关系型的 表(table)转换成为一个 类(class)。而每个记录(record)是该类下的一个对象(object)。我们可以使用基于对象的方法,来操纵关系型数据库。
models.py文件存放着这个blog应用的数据类。
编辑models.py,输入
from django.db import models
from django.contrib import admin

# Create your models here.
class BlogPost(models.Model):
    title=models.CharField(max_length=150) #表的title列。字符类型,最大长度为150
    body=models.TextField()
    timestamp=models.DateTimeField()
 #注册BlogPost代码.每次调用`` admin.site.register()`` 都将那个模块注册到管理工具中。 管理工具只为那些明确注册了的模块显示一个编辑/修改的界面。
admin.site.register(BlogPost)
这是一个完整的model,代表了一个有4个变量的BlogPost对象,会产生一个具有4列的表。(Django会默认为每个model自动加上一个自增的唯一的id变量)

设置数据库

设置数据库需要修改 settings.py文件
我使用的是sqlite
只需要输入如下信息:
DATABASES = {
    'default': {
        'NAME': r'C:\mysite\db\django.db',  #db目录需要自己创建
        'ENGINE': 'django.db.backends.sqlite3',
    }
}

创建表

现在可以告诉Django用提供的连接信息去连接数据库并设置应用程序所需要的表。
同步数据库的命令为:
Python manage.py syncdb 

当执行syncdb命令的时候Django会查找INSTSLLED_APPS里应用的每个models.py文件,并为找到的每个model都创建一个数据库表。
如果使用SQLite,还会看到django.db在制定的位置创建。
在产生过程中,你还会被问一些和Django.contrib.auth app有关的问题
Python一日一练101----Django创建简易博客(上)

完成后,你就在auth系统里建立了一个超级用户

访问网站

再次运行python manage.py runserver命令,并在浏览器输入127.0.0.1:8000/admin/. 就可以看到登录窗口了
Python一日一练101----Django创建简易博客(上)
输入刚才创建的用户名和密码,登录进入到下列界面
Python一日一练101----Django创建简易博客(上)
点击 blogpost,动手输入添加几篇文章,就可以看到:
Python一日一练101----Django创建简易博客(上)

继续美化


所有的文章名都叫做BlogPost object,怎么改呢?
打开blog中的models.py,增加一个__str__(self)函数(这个函数类似于java中的tostring方法)
from django.db import models
from django.contrib import admin

# Create your models here.
class BlogPost(models.Model):
title=models.CharField("标题",max_length=150) #表的title列。字符类型,最大长度为150
body=models.TextField("内容")
pub_date=models.DateTimeField("发表时间", auto_now_add=True, editable = True)
update_time = models.DateTimeField("更新时间",auto_now=True, null=True)
def __str__(self): #2.*要使用__unicode__()
return self.title

admin.site.register(BlogPost) #注册model代码
目前网站的样子。
Python一日一练101----Django创建简易博客(上)

再次进行优化

在blog/admin.py 加入以下代码
from django.contrib import admin
from .models import BlogPost
 
class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title','pub_date','update_time',) #配置显示字段
    search_fields = ('title')                                           #加入搜索栏,根据标题进行检索
 
admin.site.register(BlogPost,BlogPostAdmin)                             #加入此行代码后需要将models.py中的注册删掉。否则会发生冲突
网站再次进化~

Python一日一练101----Django创建简易博客(上)




出现的问题及用到的知识点

Python网络编程04----初识Django









欢迎收听我的微信公众号
Python一日一练101----Django创建简易博客(上)