安装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。
创建项目
在CMD中使用下面的命令创建项目:
django-admin startproject mysite
创建应用
在一个项目中可以创建多个应用。接下来我将创建一个blog应用,在项目文件夹下输入python manage.py startapp blog
就像创建项目的时候一样, 创建应用也会自动生成若干文件。
接下要通过编辑
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这是一个完整的model,代表了一个有4个变量的BlogPost对象,会产生一个具有4列的表。(Django会默认为每个model自动加上一个自增的唯一的id变量)
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)
设置数据库
设置数据库需要修改 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都创建一个数据库表。
当执行syncdb命令的时候Django会查找INSTSLLED_APPS里应用的每个models.py文件,并为找到的每个model都创建一个数据库表。
如果使用SQLite,还会看到django.db在制定的位置创建。
在产生过程中,你还会被问一些和Django.contrib.auth app有关的问题
完成后,你就在auth系统里建立了一个超级用户
访问网站
再次运行python manage.py runserver命令,并在浏览器输入127.0.0.1:8000/admin/. 就可以看到登录窗口了
输入刚才创建的用户名和密码,登录进入到下列界面
点击 blogpost,动手输入添加几篇文章,就可以看到:
继续美化
所有的文章名都叫做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代码
目前网站的样子。
再次进行优化
在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中的注册删掉。否则会发生冲突
网站再次进化~
欢迎收听我的微信公众号