前几天在网上看到了篇采用Django搭建简易博客的视频,好奇心驱使也就点进去学了下,毕竟自己对于Django是无比敬畏的,并不是很了解,来次初体验。
本文的操作环境:ubuntu、python2.7、Django1.8.6、Pycharm5。其实自从使用了ubuntu之后就很神奇的喜欢上了它,真的用起来方便很多。
1.Django项目文件并创建blog应用
(1)可以在终端中建立Django项目,使用django-admin startproject ...直接上图:
建立blog应用:
(2)在pycharm中建立Django项目
下载安装Pycharm,选择new project,建立项目直接上图:
这样就建立好了一个项目,其实相对于vim,选取pycharm更加方便,它的缩进还有自动添加功能真的很棒。
建立好了我们可以看到:
2. 建立一个简单项目
在创建的Django项目中,打开views.py,用到了Html中的简单操作,编写:
from django.shortcuts import render from django.http import HttpResponse def hello(request): return HttpResponse(‘<h1>hello benben<h2>‘)
同时,结合正则表达式,可在urls.py中做如下修改:
urlpatterns = [ url(r‘^blog/$‘,‘blog.views.hello‘), url(r‘^admin/‘, include(admin.site.urls)),]
打开浏览器,输入:localhost:8000/blog/,回车:
这样对Django的操作有了一个简单的了解。当然结合Html的相关知识,也可以对做一定的修改:
在templates中建立hello.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>hello {{name }}! Age:{{ age|add:2 }}</h1> <p>2015.11.22 sunday</p> <p>愿你能做自己喜欢的事儿,过自己喜欢的生活</p> </body> </html>
在views做如下修改:
def hello(request): name = ‘benben‘ age = 18 return render(request,‘hello.html‘,locals())
打开localhost:8000/blog:
3.models数据库映射
建立一个博客,那么势必是要有作者和文章这两个简单的对象,在models.py中建立:
from django.db import models # Create your models here. class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField(max_length=18) class Article(models.Model): title=models.CharField(max_length=200) content = models.TextField() url=models.URLField() portal = models.ImageField() author = models.ForeignKey(Author)
在pycharm中tools中选取Run manage.py Task输入migrate,如下图:
在终端中查看建好的数据库:
在这里是sqlite3的原因是在setting.py中:
当然,有需要使用Mysql的朋友也可以在此设置MySql.
4.admin后台管理
自动生成了admin.py,在这里建立之前的两个类Article和Author:
from django.contrib import admin from blog.models import * # Register your models here. admin.site.register(Article) admin.site.register(Author)
之后运行服务器,在Run manage.py Task中输入syncdb,连接数据库:
输入yes,之后的命名邮箱密码之类的自己设定,打开浏览器,输入localhost:8000/admin,回车:
输入设定的用户和密码:
这样,我们就完成了一个博客的最简单的功能,可以访问后台创建文章:
总的来说,要学的东西还有很多,也算是对Django有了一个简单的认识了。总是在做着自己喜欢的事儿,嗯,想一直坚持下去呢...