【Django】不知道为什么就是想学一下 01

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 nautilus

【插播完毕】

根据官方教程,先将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的模型(?)
  #定义titletextcreated_date,published_dateauthor属性 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/

原文地址:https://www.cnblogs.com/liez/p/5565706.html