开发:Django(1)

一、安装

sudo pip install Django

二、Verifying(校验)

>>> import django
>>> print(django.get_version())
1.10

或者
终端 直接输入:
$ python -m django --version

三、编写一个Django应用

1、Creating a project

在终端切换到你想要存放源码的目录,然后输入:

django-admin startproject mysite

就会创建一个mysite文件夹,里面是一些自动生成的源码。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

2、运行项目

首先在终端切换到你项目目录下(outer mysite),然后输入:

python manage.py runserver

然后输出:
Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

March 11, 2017 - 15:50:53
Django version 1.10, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

现在你就可以访问:http://127.0.0.1:8000/ 了

3、修改服务的IP和端口

python manage.py runserver 8080 # 修改端口号
python manage.py runserver 0.0.0.0:8000 # 修改IP


注:自动重新加载服务
Automatic reloading of runserver

The development server automatically reloads Python code for each request as needed. You don’t need to restart the server for code changes to take effect. However, some actions like adding files don’t trigger a restart, so you’ll have to restart the server in these cases.

4、创建APP

在 manage.py 所在的目录下运行命令:

python manage.py startapp polls

APP目录结构:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

这样就在项目里创建了一个应用。

在 settings.py 的 INSTALLED_APPS 中添加上刚创建的应用的名称。这个的作用就是:在查找模板的时候,会按照INSTALLED_APPS中的顺序查找,如果不指定会报找不到模板的错误[ TemplateDoesNotExist ]。

views.py 文件中编写代码:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello World!")

在你新创建的应用文件夹下,创建一个 urls.py 文件,然后在 mysite 文件夹下的 urls.py 文件中配置:

# mysite/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    # polls/是 polls这个应用的访问路径名称
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls)
]

在应用下的urls中:

# polls/urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name = 'index')
]

当我们访问 http://127.0.0.1:8000/polls 路径时就会跳转到新的页面。

5、为应用添加模板

在应用的目录下新建一个 templates 文件夹,编写一个html文件,修改:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return render(request, 'index.html')

再次访问 : http://127.0.0.1:8000/polls 路径时就会跳转到index.html。

6、向网页传递数据

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return render(request, 'index.html', {'data': 'HELLO, WORLD!'})

7、创建Model

# polls/models.py

# -*- coding:utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# 类继承 models.Model
class Article(models.Model):
    title = models.CharField(max_length = 32, default = 'Title')
    content = models.TextField(null = True)

在modules.py文件中创建好Model之后,在控制台输入命令:

# 准备迁移
python manage.py makemigrations

# 迁移 
python manage.py migrate

# 查看SQL语句
python manage.py sqlmigrate 应用名称 文件id

先手动向数据库添加一条数据,查询并返回数据到页面:

# polls/views.py

from django.shortcuts import render
from django.http import HttpResponse
from . import models


def index(request):
    article = models.Article.objects.get(pk=1)
    return render(request, 'index.html', {'article': article})

你可能感兴趣的:(Python基础)