django说明
8月1日,Django 2.1发布了。此次发布有以下几个重点:
最低支持Python3.5,Python3.4正式被丢弃。如果你想了解更多的更新新特性,可以查阅更新日志:https://docs.djangoproject.com/en/2.1/releases/2.1/
Django 是一个python的web框架。其实django架站挺复杂的。就是20篇文章也说不完整个过程。所以今天只是简述一个过程,但是你可以放心,按照本教程操作,是可以搭建出一个简易网站的,有多简易呢?只有简单的静态html网页当然美化需要后期进行处理。我们只是做出一个样板来。
但是这已经是整个过程中最重要的一步了。以后美化也只是在现有基础上进行改进工作而已。
首先准备一个python环境。我以Linux环境为例介绍,但是其他操作系统也可按照此方法进行搭建。
本人操作环境: Ubuntu 16.04 (LTS) [本人并没有用Mac系统,只是给Ubuntu安装了Mac主题],python2.7,django1.1.
各位,以自己的实际环境为准,首先说明一点,django 1.x和django2.x的存在很大的区别,而且各版本之间存在很大的差异,不向下兼容。一切以你的环境为主。
首先你应该验证一下你的python环境是否符合该django版本。1
2lengyue@ubuntu:~$ python -V
python 2.7
Django对Python版本的依赖关系如下表所示
Django本身的版本支持路线图如下所示
下载安装django
首先下载django框架,适用pip包管理工具进行下载,并指定版本号为1.11,因为这个版本号是LTS的,可以得到很长时间的技术支持,而且该版本存在大量的学习文档,方便学习与使用。1
lengyue@ubuntu:~$ sudo -H pip install django==1.11
我们从图中可以看到已经成功安装,我们还可以通过以下2个命令来进行查看是否成功安装。1
2
3
4lengyue@ubuntu:~$ python -m django --version
lengyue@ubuntu:~$ python
>>> import django
>>> print(django.get_version())
创建myblog项目
1 | lengyue@ubuntu:~$ django-admin startproject myblog |
下面切换到myblog目录,并创建blog应用。1
2
3
4
5lengyue@ubuntu:~$ cd myblog/
lengyue@ubuntu:~/myblog$ ls
manage.py myblog
lengyue@ubuntu:~/myblog$ sudo python manange.py startapp blog
lengyue@ubuntu:~/myblog$ ls
项目结构说明
然后我们来看一下项目目录结构图1
lengyue@ubuntu:~$ tree myblog
以下是项目的目录介绍,如果你想学习django的话,那么下面每个文件的作用都要十分的清晰。
目录介绍:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20manage.py : Django项目里面的工具,通过它可以调用django shell和数据库等。
myblog/
| --- settings.py : 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
| --- urls.py : 负责把URL模式映射到应用程序。
| --- wsgi.py : 用于项目部署。
blog /
| --- admin.py : django 自带admin后面管理,将models.py 中表映射到后台。
| --- apps.py : blog 应用的相关配置。
| --- models.py : Django 自带的ORM,用于设计数据库表。
| --- tests.py : 用于编写Django单元测试。
| --- veiws.py :视图文件,用于编写功能的主要处理逻辑。
我们到 myblog/myblog/目录下,找到settings.py文件,这是django的主要配置文件。1
2
3lengyue@ubuntu:~/myblog$ cd myblog/
lengyue@ubuntu:~/myblog/myblog$ ls
__init__.py __init__.pyc settings.py settings.pyc urls.py wsgi.py
打开settings.py配置文件,添加blog应用。1
lengyue@ubuntu:~/myblog/myblog$ sudo gedit settings.py
初始化数据库
然后我们需要初始化数据库,记得一定要初始化数据库。
Python 自带SQLite3数据库,Django同意也是默认使用SQLite3数据库,如果你使用其它数据库可以在settings.py文件中进行设置。
此时回退到myblog目录,然后我们需要执行数据库同步,把相关表生成出来。1
2lengyue@ubuntu:~/myblog/myblog$ cd ..
lengyue@ubuntu:~/myblog$ sudo python manage.py migrate
然后我们需要为自己的博客创建一个后台账户,以方便以后的管理,键入你创建的账户名称和密码。(一定要记住你的登陆密码)1
lengyue@ubuntu:~/myblog$ sudo python manage.py createsuperuser
启动应用&访问admin后台
1 | lengyue@ubuntu:~/myblog$ sudo python manage.py runserver |
现在打开浏览器,地址栏输入 http://127.0.0.1:8000
现在访问一下后台: http://127.0.0.1:8000/admin ,输入刚才创建的账户即可登陆进去。
OK,一切成功,你已经做成功了最重要的步骤。下一步就是开始配置自己的博客了。
我们可以看到默认的网站是英文的,而且时间也是错乱,和本机时间对不上的。其实django默认的时区是America/Chicago
。
现在我们开始通过配置文件来修改这些信息。1
2lengyue@ubuntu:~/myblog$ cd myblog
lengyue@ubuntu:~/myblog/myblog$ sudo gedit settings.py
把其中的相关配置设置为如下所示。1
2
3LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
保存退出后,我们现在刷新一下界面,OK!
创建Model(即设计数据库表)
创建blog表。1
2lengyue@ubuntu:~/myblog$ cd blog
lengyue@ubuntu:~/myblog/blog$ sudo gedit models.py
打开后,将如下内容复制进去。1
2
3
4class BlogsPost(models.Model):
title = models.CharField(max_length = 150) # 博客标题
body = models.TextField() # 博客正文
timestamp = models.DateTimeField() # 创建时间
在该app下建立migrations
目录,该目录包含了我们创建的模型,并且指出这个类的成员属性id,name,以及他们的属性。1
lengyue@ubuntu:~/myblog$ sudo python manage.py makemigrations blog
执行数据库同步,将该改动作用到数据库文件,使模型类对应的数据表。1
lengyue@ubuntu:~/myblog$ sudo python manage.py migrate
创建模板
在blog项目下创建templates目录(myblog/blog/templates/)。(注意: 文件名一定需要是templates,其他任何名字都会报错),不然会出现如下所示错误。
并在templates目录下创建模板文件。1
2
3
4lengyue@ubuntu:~/myblog$ cd blog
lengyue@ubuntu:~/myblog/blog$ sudo mkdir templates
lengyue@ubuntu:~/myblog/blog$ cd templates
lengyue@ubuntu:~/myblog/blog/templates$ sudo touch index.html
将以下内容复制粘贴进去。1
2
3
4
5{% for blog in blog_list %}
<h2>{{ blog.title }}</h2>
<p>{{ blog.timestamp }}</p>
<p>{{ blog.body }}</p>
{% endfor %}
创建视图函数
打开myblog/blog/views.py文件,向其中添加如下内容:1
2
3
4
5from blog.models import BlogsPost
def blog_index(request):
blog_list = BlogsPost.objects.all() # 获取所有数据
return render(request,'index.html', {'blog_list':blog_list}) # 返回index.html页面
blog_list = BlogPost.objects.all() :获取数据库里面所拥有BlogPost对象。
render返回一个页面(index.html),顺带把数据库中查询出来的所有博客内容(blog_list)也一并返回。
创建blog的URL模式
我们需要blog可以索引到我们的发布的文章。
在myblog/urls.py文件里添加blog的url,将下面内容复制粘贴进文件的对应地方,注意缩进。1
2
3
4
5
6from blog import views
urlpatterns = [
path(r'^admin/', admin.site.urls),
path(r'^blog/', views.blog_index),
]
刷新网页,访问blog应用(http://127.0.0.1:8000/blog/)。
好了,现在我们已经做出一个最基本的博客了,虽然整体界面实在太简洁了,好像除了文字没有任何东西了,但是你已经做出了一个blog最基础的模样了。
我们可以发布一篇文章来试试看是否已经成功创建出一个博客框架了。
点击’Blogs posts’中的’增加’按钮,向其中任意写入内容。然后点击’保存’.
我们即可看到如下界面。
然后我们去博客主页看是否已经成功发布到主页。地址:http://127.0.0.1:8000/blog/
接下来,我们应该做的就是对自己的blog进行美化了。当然美化也是需要更为系统的知识的。你需要了解django的样式结构,了解HTML,CSS,JavaSprite,BootStrap等前端知识。
本文参考《Django web开发指南》,如果你需要本书,可以扫描下方二维码进群获取。
本文作者:冰羽
本文地址: https://bingyublog.com/2018/08/10/利用django搭建博客/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!