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、新建应用
使用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基础流程的更多相关文章
- {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...
- Django基础和基本使用
Django基础 Django是Python下的一款著名的Web框架 框架 任何语言进入到高级部分时,会有认证.session.http.连接数据库等等功能操作,没有框架时需要自己实现 框架 是整个或 ...
- {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...
- Django基础之MTV模型
一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Control ...
- 【笔记】Django基础(一)
---恢复内容开始--- [笔记]Django基础(一) oldboy Django 一 关于Python框架的本质 1. HTTP协议消息的格式: 请求(request) 请求方法 路径 HTTP ...
- day 63 Django基础九之中间件
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...
- day 52 Django基础一之web框架的本质
Django基础一之web框架的本质 django第一天 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于D ...
- django基础(web框架,http协议,django安装)
学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层 应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层 提供端口对 ...
- Django基础知识点
HTTP协议: 请求方式: 有8种分别是GET POST DELTE PUT OPTIONS HEAD 状态码: 2xx 200 OK 3xx 重定向 4xx 请求的错误 5xx 服 ...
随机推荐
- Tp框架—方法中处理数据
Tp框架-方法中处理数据 可以使用函数过滤处理内容. $data[$key]['content_title'] = mb_substr(strip_tags($val['content']) ,0,4 ...
- MySQL 创建数据库及数据表
1.创建数据库 (1) 命令行创建 [root@host]# mysqladmin -u root -p create RUNOOB Enter password:****** (2) php创建 语 ...
- JavaScript完整性检查
1.7个“坑” <!DOCTYPE html> <html lang="zh"> <head> <meta charset="U ...
- How to learn a new technology
是什么?为什么会出现? 这一阶段主要是对该技术有一个整体了解,他所解决的是什么问题,他的整体结构等. 怎么做? 最简单的是找一个上手视频,因为视频是非常直观的展示了技术的使用.先学会用是最根本的,对于 ...
- 【MyBatis学习13】MyBatis中的二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加 ...
- 《C#程序设计教程 -李春保》阅读笔记
<C#程序设计教程 -李春保>阅读笔记 ( 需注意程度:红>粗体>下划线,蓝色:我的疑问 ) 老师的引言 [师]对待一种新语言的关注点 数据类型定义(python不用定 ...
- linux系统日志报错
使用journalctl -xe命令时报错: Error was encountered while opening journal files: Input/output error 日志文件损坏了 ...
- MTU的概念,什么是路径MTU? MTU发现机制,TraceRoute(了解)
1.MTU的概念 MTU即Maximum Transmission Unit 最大传输单元.它是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位). 2.路径MTU ...
- Intellj IDEA14.0.2启动异常之3分钟修复
今天是周一,刚到公司启动心爱的IDEA,,突然启动到一半,就抛异常了,直接弹窗,报例如以下的异常: java.lang.RuntimeException: com.intellij.ide.plugi ...
- Atitit.跨语言 文件夹与文件的io操作集合 草案
Atitit.跨语言 文件夹与文件的io操作集合 草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...