1. Django安装、项目创建及服务器连接
系统:Ubuntu 14.04.4
> cat /etc/issue //查看系统版本
安装Django
> sudo pip install django
确定进入了root模式,进入django-admin.py所在目录,运行以下指令
> django-admin.py startproject mysite
在当前目录生成mysite文件夹,进入文件夹(哦,项目名可以随意取,不一定非得mysite...)
> manage.py runserver 8000
浏览器输入:http://127.0.0.1:8000/。显示如下界面,连接服务器成功
2. urls.py文件的配置
尝试修改manage文件夹中urls.py的内容。
URL配置就像是 Django 所支撑网站的目录。它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。 你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。
执行 django-admin.py startproject 时,该脚本会自动为你建了一份 URLconf(即 urls.py 文件)。
每个url模式的完整内容为
urlpatterns = patterns(前缀, url(正则表达式, 视图函数, 参数字典, 名称), )
修改urls.py文件,将urlpatterns修改如下
urlpatterns = [ url(r‘^admin/‘, admin.site.urls), url(r‘^$‘, ‘mysite.hello.helloworld‘), #即mysite/hello.py中的hello_world函数 ]
在mysite文件夹下创建hello.py文件
# -*- coding: utf-8 -*- # hello.py from django.http import HttpResponse def hello_world(request): #视图函数hello_world return HttpResponse("<p>Hello,World!</p>") #一个视图功能必须返回一个HttpResponse
刷新http://127.0.0.1:8001/,显示如下
3. 数据库
接下来创建数据库,在第一个mysite文件夹下进行如下指令
python manage.py migrate
4. 增加app功能
首先了解一下app是什么吧~
之前starproject指令我们已经创建了mysite项目。
一个project包含很多个Django app以及对它们的配置。
技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等。
一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
例如,Django本身内建有一些app,例如注释系统和自动管理界面。 app的一个关键点是它们是很容易移植到其他project和被多个project复用。
创建一个app
python manage.py startapp blog #创建blog这个app
在mysite中(不是mysite/mysite)生成了blog文件夹,内容如下
blog
├── migrations
| __init__.py
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
创建应用程序blog后,找到mysite中的settings.py文件,在installed_apps下加上‘blog’,告诉Django使用blog这个app
INSTALLED_APPS = [ ‘django.contrib.admin‘, ‘django.contrib.auth‘, ‘django.contrib.contenttypes‘, ‘django.contrib.sessions‘, ‘django.contrib.messages‘, ‘django.contrib.staticfiles‘, ‘blog‘, #添加blog! ]
【= - =插播一下,因为我的ubuntu一直没取得完全的root权限,每次输入指令需要的话都是sudo su,编辑blog内文件又遇到权限问题,可以通过输入以下指令取得超级权限,从而可以编辑一切文件】
> sudo sautilus
【插播完毕】
根据官方教程,先将blog/models.py内容改为如下
from __future__ import unicode_literals from django.db import models from django.utils import timezone # Create your models here. class Post(models.Model): #定义Post对象,models.Model表明Post是Django的模型(?) #定义title
,text
,created_date
,published_date
和author属性
author = models.ForeignKey(‘auth.User‘) #models.ForeignKey表示指向另一个模型的连接 title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField( default=timezone.now) published_date = models.DateTimeField( blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return self.title
上面这一串暂时别管了= - =,慢慢解释
5. 将新模型添加到数据库
在数据库中为模型建立数据表,在mysite文件夹中运行如下指令
> python manage.py makemigrations blog
Then
> python manage.py migrate blog
酱紫Post模型就在在我们的数据库里面辣~
6. 后台管理
向blog/admin.py中添加代码
from django.contrib import admin # 添加如下代码 from .models import Post admin.site.register(Post) #用此行代码注册模型使其在页面上可见
然后打开网站http://127.0.0.1:8001/admin,出现登陆界面
“为了登录, 你需要创建一个掌控整个网站所有东西的超级用户。”
继续执行如下指令
> python manage.py createsuperuser
然后根据提示输入用户名邮箱密码blablabla~
之后用自己设置的superuser登陆刚刚的登陆界面。
可以Post自己的文章啦~
【Countinued】
-------------------------------------------------------------------------------------------------------------------------------------------------------
来自官方的教程(•??•?)?:http://tutorial.djangogirls.org/