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应用的一般流程。