Django

  1. 创建项目
    django-admin startproject 项目名

  2. python manage.py runserver 端口号

  3. 项目目录
    wsgi.py -> python web server gateway interface
    urls.py -> url 的配置
    settings.py -> 视频讲解

  4. python manage.py startapp 应用名

  5. 应用目录
    migration
    admin.py -> 后台管理系统配置
    apps.py -> 该应用的一些配置
    models.py -> 数据模块,ORM 框架
    tests.py -> 自动化测试模块
    views.py -> 执行响应的代码所在模块,代码逻辑处理的主要地点,主要代码编写

  6. 写一个应用

views

//只写加入的代码
form django.http import HttpResponse

def index(request):
    return HttpResponse('Hello, world!')

urls

import blog.views as bv

url(r'^index/', bv.index)

终端
python manage.py runserver

  1. 优化 urls
    在应用中创建一个 urls.py,代码和项目中的 urls 类似
    在项目的 urls 中加入 include

  2. templates
    在应用目录下创建 templates 文件夹,里面写 html 代码
    在 views 中,写 return render(request, 'blog/index.html', dict)

  3. Models
    在应用中有一个 models.py 文件,在里面写一个类,继承自 models.Model,然后就可以创建数据库表的 key 了,例如 title = models.CharField(max_length=32, default='Title') content = models.TextField(null=true)
    然后在终端输入 python manage.py makemigration app名(可选) python manage.py migration,然后就可以在 views 里面将数据库对象传递给前端:

// views
from . import models

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

// html

{{ article.title }}

  1. admin
    python manage.py createsuperuser 设置好帐号密码,然后修改 settings.py 的语言为 zh-Hans,就可以修改成中文显示,现在可以进行登录。
    现在将数据库的内容添加到 admin 中,在应用的 admin.py 中注册数据库的表,from models import Article admin.site.register(Article)
    接下来对 admin 中的文章显示文章名称,在 models 中写一个函数,__str__(self) __unicode__(self),函数名根据 python 的版本来写,return slef.title

实践:博客开发

主页面

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

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

# Create your views here.
def index(request):
    articles = models.Article.objects.all()
    return render(request, 'blog/index.html', {'articles':articles})

# 前端
{% for article in articles %}
    {{ article.title }}
{% endfor %}

文章页面

# views
def article_content(request, article_id):
    article = modes.Article.objects.get(pk=article_id)
    return render(request, 'blog/article.html', {'article':article})

# urls
url(r'^article/(?P[0-9]+)$', views.article_content)

# 前端

配置超链接

# urls
# project
include('blog.urls', namespace='blog')
# app
url(r..., views...., name='函数名')
# html
href={% url "blog:函数名"  article_id %}

你可能感兴趣的:(Django)