Djanjo创建博客

拜读http://www.cnblogs.com/fnng/p/3737964.html 后自操作步骤,mark一下

我的想法:

modles.py中只负责添加类,定义数据结构,至于将该类添加到admin后台,应该交给admin.py处理。

admin.py中importmodels中的类,然后再去处理。

--------------------------------------------------------------------------------------------

版本信息:

系统:windows 7

python:3.5.1

Django:1.10

需求:使用django框架搭建一个简单的博客,使用mysql数据库

-------------------------------------------------------------------------------------------

1、创建项目,并新建app

django-admin.py startproject djblog
cd djblog
python manage.py startapp blog

2、因为需要使用mysql数据库,先配置数据库相关信息

a、新建数据库-djblog,如下图

b、在djblog/djblog/settings.py中配置数据库信息:

#将默认数据库sqlite3配置注销
# DATABASES = {
#     ‘default‘: {
#         ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
#         ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
#     }
# }

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘djblog‘,
        ‘USER‘:‘root‘,
        ‘PASSWORD‘:‘123456‘,
        ‘HOST‘:‘10.85.4.216‘,
        ‘PORT‘:‘3306‘,
    }
}

3、添加blog应用

打开djblog/djblog/settings.py 文件,告知Django添加了一个名为bolg的app:

# Application definition

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘blog‘, #new
]

4、设计Model(即设计数据库表)

a、现在我们打开blog目录下的models.py文件,这是我们定义blog数据结构的地方。打开blog/blog/models.py 文件进行修改:

# Create your models here.
from django.db import models
from django.contrib import admin

class BlogsPost(models.Model):
    title=models.CharField(max_length=150)
    body=models.TextField()
    timestamp=models.DateTimeField()
    def __str__(self):              # __unicode__ on Python 2
        return self.title           #回显内容,否则返回的只是一个对象,无法读取

b、同步数据库

python manage.py makemigrations
python manage.py migrate

5、admin后台配置(必须先同步数据库)

a、在我们创建django项目时,admin就已经创建,打开mysite/mysite/urls.py文件

urlpatterns = [
       url(r‘^admin/‘, admin.site.urls),
]

b、创建超级用户,用户登录admin后台

python manage.py createsuperuser

# 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填

# 修改 用户密码可以用:
python manage.py changepassword username

c、启动django

python manage.py runserver

E:\django-test\djblog>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
March 23, 2017 - 10:40:25
Django version 1.10.6, using settings ‘djblog.settings‘
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

d、访问后台

http://127.0.0.1:8000/admin
 
如果界面是英文,想改成中文,请见http://www.cnblogs.com/Eric-Young/p/6600461.html
 
e、在admin后台中关联models中的类,并显示
from django.contrib import admin
from blog.models import BlogsPost #引用blog模版中的BlogsPost类

# Register your models here.

class BlogPostAdmin(admin.ModelAdmin):
    list_display = (‘title‘,‘timestamp‘)   

admin.site.register(BlogsPost,BlogPostAdmin)
 
 

可以点击“增加”,添加几篇文章试试效果。

6、前台实现

从Django的角度看,一个页面具有三个典型的组件:

一个模板(template):模板负责把传递进来的信息显示出来。

一个视图(view):视图负责从数据库获取需要显示的信息。

一个URL模式:它负责把收到的请求和你的试图函数匹配,有时候也会向视图传递一些参数。

a、创建模版

在blog项目下创建templates目录(blog/blog/templates/),在目录下创建模板文件index.html,内容如下:

{% for post in posts_list %}
    <h2>{{ post.title }}</h2>
    <p>{{ post.timestamp }}</p>
    <p>{{ post.body }}</p>
{% endfor%}

b、创建视图

from django.shortcuts import render
# Create your views here.
from django.shortcuts import render_to_response
from blog.models import BlogsPost

def Index(request):
    blog_list=BlogsPost.objects.all()
    return render_to_response (‘index.html‘,{‘blog_list‘:blog_list})

blog_list = BlogPost.objects.all() :获取数据库里面所拥有BlogPost对象

render_to_response()返回一个页面(index.html),顺带把数据库中查询出来的所有博客内容(blog_list)也一并返回。

c、URL路由定向

from django.conf.urls import url
from django.contrib import admin
from blog import views as blog_views  #养成良好的习惯,从app的views中导入视图,并命名为app名_views,方便后面识别调用

urlpatterns = [
    url(r‘^index‘,blog_views.Index,name=‘index‘),
    url(r‘^admin/‘, admin.site.urls),
]

打开http://127.0.0.1:8000/index/

PS: django启动后,操作文件内容无需重启,后台会自动操作(报错除外)

时间: 2024-10-10 12:38:26

Djanjo创建博客的相关文章

Django创建博客应用

最近在看一篇全栈增长工程师实战,然后学习里面的项目,结果发现作者用的技术太过老旧,好多东西都已经被抛弃了,所以结合着官方文档和自己的一些理解将错误的信息替换一下,边写边学习 准备工作和工具 作者说需要一些python基础,但是中国程序员是最好的程序员,没有基础照样看,大不了遇到不懂的现学就是喽 需要在计算机上安装一些工具 Python环境及包管理工具pip 一款浏览器,推荐Chrome,当然,用自己喜欢的浏览器也可以 版本控制,推荐用Git,但是很多培训机构出来的只会SVN,所以这个没有什么重要

Django快速创建博客,包含了整个框架使用过程,简单易懂

创建工程                                                                                                           创建mysite工程项目: D:/djpy> django-admin.py startproject mysite 工程目录结构: manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等. settings.py ----

基于hexo创建博客(Github托管)

基于hexo的博客 搭建步骤 1.依赖文件下载 Node.js 2.Hexo的安装 3.部署到Github 4.Hexo创建博客基本操作 5.Hexo主题皮肤更换 依赖文件Node.js 首先要安装node,npm 前端支持的基础文件 npm包管理,使用cnpm下载速度更快 npm install -g cnpm --registry=https://registry.npm.taobao.org Hexo框架安装 1.框架安装 cnpm install -g hexo-cli 2.创建一个空文

Github-Hexo创建博客

环境准备 安装nodejs安装git 安装Hexo 打开cmd命令行,输入 1 2 3 4 5 D: cd D:/hexo npm install hexo-cli -g //卸载 npm uninstall hexo-cli 初始化Hexo 1 2 3 4 hexo init blog cd blog npm install #安装package.json中的依赖包 npm install hexo-deployer-git --save #安装deploy插件,用于部署到GitHub 测试运

创建博客来记录我每天的java征途

大家好! 今天2015-7-29!我创建了属于我自己的博客,在这里,我将记录我每天的java学习征途, 其实我的大学专业不是软件工程类的,而是建筑工程,都是工程,可是两者之间却完全不沾边的两个专业,为什么我会选择放弃我的大学专业学习java呢? 第一点:虽说我在大学的专业是建筑工程,可是大学里我都是浑浑噩噩度过的,没有学到什么东西,每天呆在寝室和室友一起玩游戏,可以说大学三年基本是玩过来的,可是我大学每次期末考都没有挂过科,当然,每次考试前总是会抱抱佛脚,还算幸运,没有挂科. 第二点:java挣

全栈一路坑(4)——创建博客的API

上一篇博客:全站之路一路坑(3)——使用百度站长工具提交站点地图 这一篇要搭建一个API平台,一是为了给博客补充一些功能,二是为以后做APP提供数据接口. 首先需要安装Django REST Framework的RESTful API库,记得先打开virtualenv,避免全局污染. pip install djangorestframework 然后添加到INSTALLED_APPS中 INSTALLED_APPS = [ 'django.contrib.admin', 'django.con

初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)

我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试NodeJs,决定找一款基于NodeJs的CMS来完成这个工作,最后找到了KeyStoneJS. KeyStoneJS是基于Express和MongoDB的CMS架构,详细介绍参见官网http://keystonejs.com/zh/.本文记录一下keystonejs的安装过程,后续将记录基于keystonejs的二次开发过程. keystonejs的安装过程并不复杂,但由于涉及到node.js,MongoDB,yo等安装,如果某一步陷到坑里

django 搭建博客系统之创建博客的数据库模型

在我们之前已经创建好了虚拟环境,以及开始一个项目. 现在我们要添加一些功能性代码,django鼓励我们把自己编写的代码放入app中,每个app实现一个功能. 如今新建一个blog app 1,在虚拟环境下进入根目录,运行 python manage.py startapp blog.就建立了一个名为blog的应用,app. 2,在setting.py 中'告诉'django 存在这样的一个app. 好了 我们已经有了blog这个app,是要实现博客文章,博客的文章应该含有标题.正文.作者.发表时

beeblog创建博客

1.定义modles.go 这里需要提前get一些包,否则会提示找不到哦,models/models.go:5:2: go get github.com/mattn/go-sqlite3go get github.com/unknwon/com package models import ( "os" "path" "time" "github.com/astaxie/beego/orm" _ "github.com