Diango是一个开放源代码的Web应用框架,由python写成。Diango采用了MVT的软件设计模式,即模型Model,试图View和模板Template。Django框架的核心包括:一个面向对象的映射器,用作数据模型(以python类的形式定义)和关系型数据库间的介质;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;一个模板系统。
1. 新建django项目:File---New project---Diango
创建成功之后项目目录显示如下:
manage.py:命令行的工具集,它将会帮助我们管理创建好的Django项目;
blog/setting.py:所有Django项目的设置和配置信息;
blog/urls.py:项目的URL信息,也是用户访问Django与应用的方式;
blog/wsgi.py:此文件是一个兼容WSGI的web服务器的入口点;
blog/__init__.py:空文件,指明blog目录是一个Python模块。
2.运行python manage.py runserver命令,在浏览器打开127.0.0.1:8000,即可查看项目是否新建成功。
3.开始Django之旅
在setting.py文件中设置相应的属性值对数据库进行设置(默认无需修改),运行python manage.py migrate命令,生成数据库和对应的表。由于我这里已经生成过,因此显示如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
4.编写第一个网页
首先打开blog/n=view.py文件输入如下代码:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello world.this is my first index")
这是Django最简单的视图,要调用这个视图,我们需要将它映射到一个URL。为此我们需要一个一个URLconf,在目录下新建文件urls.py,输入如下代码:
from django.conf.urls import url
from.import views
urlpatterns=[
url(r'^$',views.index,name='index')
]
下一步考虑把blog应用的urls.py加入到项目的urls.py中。编辑模块中的urls.py文件,修改如下:
from django.contrib import admin
from django.urls import path
from django.conf.urls import include,url
urlpatterns = [
url(r'^blog/',include('blog.urls')),
url(r'^admin/', admin.site.urls),
]
将索引视图连接到urlconf,进行运行,在pycharm命令行输入python manage.py runserver命令,浏览器打开显示如下即代表运行成功:
5.创建模型
定义应用的模型本质上就是定义该模型所对应的数据库设计及其附带的元数据。新建一个Post对象,将Post对象的content属性作为消息内容,publish_date属性作为发布时间,编辑blog/models.py文件,输入如下代码:
from django.db import models
# Create your models here.
class Post(models.Model):
title=models.CharField(max_length=20)
content=models.CharField(max_length=20)
publish_date=models.DateTimeField('date published')
要在项目中激活使用应用,用户需要在INSTALLED-APPS 中设置添加对应配置类的应用。编辑blog/setting.py文件,把应用添加到INSTALLED-APPS列表中(默认不变):
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
]
在django设置中添加blog应用配置类的应用之后开始数据库迁移,终端运行python manage.py makemigrations blog ,生成迁移文件后用户可以让Django输出迁移文件对应的SQL语句,终端输入python manage.py sqlmigrate 0001(我这里显示已经迁移完毕):
django的迁移功能非常强大,让我们在开发过程中不断修改模型而不用删除数据库或者表。
6.管理站点
Django解决了网站管理员创建统一界面以编辑内容的问题,管理网站不打算供网站使用者使用。首先我们需要创建一个可以登陆到管理网站的账户,运行python manage.py createsuperuser命令,输入用户名,邮箱地址,输入两次密码。
Django的管理站点是默认启用的,启动开发服务器进行登录。
默认情况下里面只有用户和用户组的管理。用户可以很方便的把自己创建的模型添加到管理站点中。打开blog/admin.py,修改如下内容,浏览器进行访问。
from django.contrib import admin
# Register your models here.
from .models import Post
admin.site.register(Post)
用户可以点击Add来添加新的Blog,点击change来修改已有的blog。
为了直观的信息,修改blog/model.py文件,然后在浏览器访问。
from django.db import models
# Create your models here.
class Post(models.Model):
title=models.CharField(max_length=20)
content=models.CharField(max_length=20)
publish_date=models.DateTimeField('date published')
def __str__(self):
return self.title