Django基础流程

软件环境

Pycharm 2018.1

Python 3.6

Django 2.0.3

 

1、新建项目

直接使用Pycharm的菜单来创建项目,命名为mysite

mysite

  mysite

    __init__.py

    settings.py

    urls.py

    wsgi.py

  templates

  manage.py

2、新建应用

使用Pycharmtools菜单下的Run manage.py Task,在弹出的窗口中输入以下命令:

startapp blog

blog

  migrations

  __init__.py

  admin.py

  apps.py

  models.py

  tests.py

  views.py

3、将blog应用加到setting.py文件中的INSTALLED_APPS

INSTALLED_APPS = [

  'blog',

]

4、编写第一个Model

编辑blog下的models.py文件,输入:

from django.db import models


class BlogPost(models.Model):
    title = models.CharField(max_length=150)
    body = models.TextField()
    timestamp = models.DateTimeField()

    class Meta:
        ordering = ['-timestamp']

 

5、设置数据库

一般使用默认的sqlite即可,也可以使用mysql。在settings.py中设置。

 

6、创建表

Run manage.py Task中分别执行:

makemigrations

migrate

可以看到表被生成了。

 

7、创建超级用户(用于登录admin平台)

Run manage.py Task中执行如下命令:

createsuperuser

依次输入用户名,邮箱,密码即可。

 

8、注册BlogPost应用

为了在admin管理平台上直接添加、删除文章,我们需要编辑admin.py文件:

from django.contrib import admin

from blog.models import BlogPost


class BlogPostAdmin(admin.ModelAdmin):
    list_display = ['title', 'timestamp']

admin.site.register(BlogPost, BlogPostAdmin)

9、启动web服务器

访问http://127.0.0.1/admin

输入用户名密码即可。

 

10、创建博客的展示页面

blog目录下新建templates目录,然后在templates目录下新建archive.html文件。

{% for post in posts %}
    <h2>{{ post.title }}</h2>
    <p>{{ post.timestamp | date }}</p>
    <p>{{ post.body }}</p>
{% endfor %}

11、创建视图函数

from django.template import loader
from django.http import HttpResponse
from blog.models import BlogPost


def archive(request):
    posts = BlogPost.objects.all()
    t = loader.get_template('archive.html')
    return HttpResponse(t.render({'posts': posts}))

12、配置URL路径

先修改总URL文件:项目下的urls.py文件,与settings.py同级。

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls'))
]

然后修改子URL文件:应用blog下的urls.py文件,没有就新建,与views.py同级。

from blog.views import archive
from django.urls import path

urlpatterns = [
    path('', archive)
]

13、启动web服务器,查看效果

14、编写基础模板,让其他模板来继承

templates下新建base.html文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>基础页面</title>
    <style type="text/css">
        body {
            color: #efd;
            background: #453;
            padding: 0 5em;
            margin: 0;
        }
        h1 {
            padding: 2em 1em;
            background: #675;
        }
        h2 {
            color: #bf8;
            border-top: 1px dotted #fff;
            margin-top: 2em;
        }
        p {
            margin: 1em 0;
        }
    </style>
</head>
<body>
    <h1>mysite.example.com</h1>
    {% block content %}
    {% endblock %}
</body>
</html>

15、重新修改archive.html文件

{% extends 'base.html' %}
{% block content %}
    {% for post in posts %}
        <h2>{{ post.title }}</h2>
        <p>{{ post.timestamp}}</p>
        <p>{{ post.body }}</p>
    {% endfor %}
{% endblock %}

16、模板中的过滤器

<p>{{ post.timestamp | date }}</p>

管道后面通过date函数来进行过滤。

 

17、启动web服务器,检查效果

 

以上就是使用django开发web应用的一般流程。

原文地址:https://www.cnblogs.com/t-road/p/9321313.html