软件环境

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、新建应用

使用Pycharm的tools菜单下的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应用的一般流程。

Django基础流程的更多相关文章

  1. {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证

    Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...

  2. Django基础和基本使用

    Django基础 Django是Python下的一款著名的Web框架 框架 任何语言进入到高级部分时,会有认证.session.http.连接数据库等等功能操作,没有框架时需要自己实现 框架 是整个或 ...

  3. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  4. Django基础之MTV模型

    一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Control ...

  5. 【笔记】Django基础(一)

    ---恢复内容开始--- [笔记]Django基础(一) oldboy Django  一 关于Python框架的本质 1. HTTP协议消息的格式: 请求(request) 请求方法 路径 HTTP ...

  6. day 63 Django基础九之中间件

    Django基础九之中间件   本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...

  7. day 52 Django基础一之web框架的本质

    Django基础一之web框架的本质   django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于D ...

  8. django基础(web框架,http协议,django安装)

    学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层       应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层                  提供端口对 ...

  9. Django基础知识点

    HTTP协议:  请求方式: 有8种分别是GET POST DELTE PUT OPTIONS HEAD 状态码: 2xx   200 OK 3xx   重定向 4xx   请求的错误 5xx   服 ...

随机推荐

  1. ngnix学习视频

    https://www.bilibili.com/video/av36019080/?p=1

  2. JSON--百度百科

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  3. java web--百度百科

    Java Web,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet,不过使用得很少,Java在服务器端 ...

  4. Openerp图片路径处理

    Openerp目前存储图片如人力资源头像图片等都是以二进制的方式存储在数据库中,若要修改数据库里只存储路径可以用这种方法 Image 装饰器: Image装饰器包含3中图片显示 Image 大图片 i ...

  5. 对非正确使用浮点型数据而导致项目BUG的问题探讨

    乘法分配律 在上小学的时候就已经学习过乘法分配律,乘法分配律的详细内容是:两个数的和与一个数相乘.能够先把他们分别与这个数相乘,再相加.得数不变.乘法分配律的定义还能够用表达式"(a+b)× ...

  6. 程序员取悦女票的正确姿势---Tip1(iOS美容篇)

    代码地址如下:http://www.demodashi.com/demo/11695.html 前言 女孩子都喜欢用美图工具进行图片美容,近来无事时,特意为某人写了个自定义图片滤镜生成器,安装到手机即 ...

  7. 《Mining the Web:Transforming Customer Data into Customer Value》读后札记

    <Mining the Web:Transforming Customer Data into Customer Value> <Web数据挖掘:将客户数据转化为客户价值> — ...

  8. 【web开发学习笔记】Structs2 Result学习笔记(一)简介

    Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...

  9. centos下nginx启动脚本和chkconfig管理

    在安装完nginx后,重新启动需要“kill -HUP nginx进程编号”来进行重新加载,显然十分不方便.如果能像apache一样,直接通过脚本进行管理就方便多了. nginx官方早就想好了,也提供 ...

  10. FPGA研发之道(25)-管脚

    管脚是FPGA重要的资源之一,FPGA的管脚分别包括,电源管脚,普通I/O,配置管脚,时钟专用输入管脚GCLK等. 本文引用地址:http://www.eepw.com.cn/article/2664 ...