前言
Django是一款开源Web框架,由Python编写,用了MTV的框架模式,即模型M(model),模板T(templates)和视图V(view)。其自带了sqlite3数据库也可以使用mysql数据库。如果你只希望简单实现web后端或者api接口可以使用Flask,Flask更为轻量且方便,但是如果你需要完整实现web后端及管理系统则Django是更好的选择。
安装Django(通过pip安装)
windows下在cmd中输入如下命令
pip install django
一、通过Pycharm创建Django应用
Pycharm必须为专业版,社区版自动创建Django项目需要通过命令创建
(1)创建Django项目
(2)创建app文件
注意:创建完成app文件后,我们会发现项目中多了一个文件夹即刚才创建的app文件。
Django重要文件详解:
__init__.py :python面向对象自带的初始化类不用管它。
settings.py:用于的应用进行设置,如配置数据库,是否开启Debug,配置静态文件路径,配置初始化应用等。
urls.py:设置网页访问路径,管理url的类。
wsgi.py:python代码块和Web服务器接口的配置文件。
admin.py:后端管理系统的实现类。
views.py:控制视图显示的类。
二、在settings.py文件的INSTALLED_APPS中添加所创建的app应用
三、在templates文件夹中新建一个html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello world</title>
</head>
<body>
<p>hello world</p>
</body>
</html>
四、在view.py中创建页面显示方法
from django.shortcuts import render
# Create your views here.
def hello(requset):
return render(requset, "hello.html")
五、在urls.py中配置访问路径
from django.contrib import admin
from django.conf.urls import include, url
from myblog.views import *
from django.conf import settings
from django.conf.urls.static import static
# 匹配网络地址
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', hello),
]
到此处我们的网页已经可以访问了
六、在models.py中为后端管理系统创建填写框
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField(default=18)
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
# url = models.URLField()
# portal = models.ImageField()
author = models.ForeignKey(Author, on_delete=models.DO_NOTHING) # 引入外键到Author
七、创建数据库(manage.py会根据models.py中的类帮我们创建数据库)
在managy.py控制台中执行makemigrations命令和migrate命令
八、为后端管理系统注册数据(在admin.py中添加如下代码)
from django.contrib import admin
from myblog.models import *
# Register your models here.
admin.site.register(Article)
admin.site.register(Author)
九、为后台管理系统创建用户
在managy.py控制台中执行createsuperuser,期间会让你输入用户名和密码,这也就是你进入后台管理系统的账户密码。(注意密码不能是纯数字否则会报错让你重新输入)
到此处我们的后台管理系统也就可以进入了,我们可以进入后台管理系统为我们的author和article添加一条数据。
十、到网上下载一个blog的html模板
将其html文件放入templates文件夹中,在根目录下创建一个static文件夹,将css文件,imge文件和jsp文件放入其中。替换掉views.py中显示的html。
(1)修改html的显示
from django.shortcuts import render
from django.http import HttpResponse
from blog.models import *
# Create your views here.
# def hello(request):
# return HttpResponse("这是一个未完成的网站")
def index(requset):
articles = Article.objects.all() # 读取数据库中的所有文章
return render(requset, 'index.html', locals())
def article(requset, pid):
article = Article.objects.get(id=pid) # 根据id读取数据库中的文章
return render(requset, 'article.html', locals())
(2)重新设置网页访问路径
from django.contrib import admin
from django.conf.urls import include, url
from blog.views import *
from django.conf import settings
from django.conf.urls.static import static
# 匹配网络地址
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', index),
url(r'^article/(\d+)', article)
]
十一、在这里如果你的css文件和图片还无法加载我们需要对static静态文件做处理
(1)在settings.py文件中添加
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
(2)修改ulrs.py
from django.contrib import admin
from django.conf.urls import include, url
from myblog.views import *
from django.conf import settings
from django.conf.urls.static import static
# 匹配网络地址
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', index),
url(r'^article/(\d+)', article)
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
(3)在html的文件顶部加上{% load static %}表示加载动态文件(这是django自带语法),替换img和css的使用方法为如下代码
<link rel="stylesheet" href="{% static 'css/templatemo-style.css' %}">
<img src="{% static 'img/image-02.jpg' %}" alt="Image" class="img-fluid">
(4)关于django还有很多自带语法,可以去官网学习
十二、在html中引入数据
(1)修改view.py中的代码,local(),表示传输该方法中的所有属性
from django.shortcuts import render
from django.http import HttpResponse
from myblog.models import *
# Create your views here.
# def hello(request):
# return HttpResponse("这是一个未完成的网站")
def index(requset):
articles = Article.objects.all() # 读取数据库中的所有文章
return render(requset, 'index.html', locals())
def article(requset, pid):
article = Article.objects.get(id=pid) # 根据id读取数据库中的文章
return render(requset, 'article.html', locals())
(2)在html中使用属性{{}}表示引用属性
<h2 align="center" class="mb-4 tm-text-color-primary">{{ article.title }}</h2>
<p>{{ article.content }}</p>
十二、连接Mysql数据库
(1)在settings.py中设置mysql数据库的配置
# 数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'iblogdata', # 你要存储数据的库名,事先要创建之
'USER': '数据库用户名', # 数据库用户名
'PASSWORD': '数据库密码', # 密码
'HOST': 'localhost', # 主机
'PORT': '3306', # 数据库使用的端口
}
}
(2)执行命令: python manage.py migrate
写在末尾
我们的博客也就搭建完成了,最后给大家展示一下效果,关于Django自带语法还是可以学习一下的,帮助我们更容易的在html中展示数据,不得不说django真的是一款很方便的后端开发框架。