当前位置: 首页 > news >正文

Django搭建博客后台

转载自:http://sanwen8.cn/p/1cboypN.html

 

首先创建项目和blog应用:

在cmd命令行下,输入:

django-admin.py startproject myblog

 

然后进入myblog目录,命令行下输入:

python manage.py startapp blog

这是你的myblog下有两个目录,一个是myblog,目录下有文件:__init__.py,settings.py, urls.py,wsgi.py, 一个是blog,目录下有如下文件:__init__.py,admin.py,models.py,tests.py,views.py,这些都是django自动为我们生成的,后续这些文件我们基本都会用得到,现在我们先不理会这些,用到了我们自然就会知道具体他们什么用途,现在重要的是要告诉django这个应用(app)这是我们项目的一部分,我们编辑settings.py文件,把INSTALLED_APPS里边内容修改成像如下内容一样:

 

INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blog',

)

 

好,经过以上步骤我们就把整个项目搭建起来了,下面我要进入代码部分了,其实也很简单,我们先设计我们的数据模型(Model),因为这是最基础的,发表的文章要存储起来,打开blog目录下的models.py文件,最后保存的内容如下:

 

from django.db import models

from django.contrib import admin

 

# Create your models here.

class BlogPost(models.Model):

    title = models.CharField(max_length=150)

    body = models.TextField()

    timestamp = models.DateTimeField()

    class Meta:

        ordering = ('-timestamp',)

 

class BlogPostAdmin(admin.ModelAdmin):

    list_display = ('title', 'timestamp')

 

这样就完了,我们一共就写了三个字段内容,文章标题,文章内容和发布时间,接下来我们要建立数据库表了,在这里我说下,django默认就支持sqlite3数据,所以,如果你采用的sqlite3数据库,你什么都不用修改,如果你采用的mysql数据库,就要设置settings.py文件里的数据库引擎,数据库名称,主机,用户,密码,这里为了简单,我用默认django的sqlite3数据库,我什么也不用设置。

再说一次,如果你用的 sqlite3数据库,请运行如下命令,建立数据库表(命令行):

python manage.py syncdb

 

 

运行后你会看到django创建表的输出,运行syncdb这个命令意思是django会查找INSTALLED_APPS里的每个models.py文件,然后为每个model创建一张数据表,到最后你会被问些问题(很抱歉,具体输出信息这段我没能保存下来,只能描述了),不过话说回来,提示的因为也非常简单,所有单词都没超初中英语单词水平:
第一个问题是问是否创建一个超级用户,敲yes
然后输入用户名
然后是邮件
最后是密码
然后就结束了

建立完数据库,我们注册我们的models,打开blog下的admin.py,输入:

from django.contrib import admin

from blog.models import BlogPost,BlogPostAdmin

 

# Register your models here.

admin.site.register(BlogPost, BlogPostAdmin)

 


最后在访问这前,我们设置访问的url,设置myblog/的urls.py,保存如下:

from django.conf.urls import patterns, include, url

from django.contrib import admin

admin.autodiscover()

 

urlpatterns = patterns('',

    # Examples:

    url(r'^admin/', include(admin.site.urls)),

)

好了,启动项目,在命令行下输入:


python manage.py runserver

然后可以打开我们页面看看了,在地址栏输入:

http://127.0.0.1:8000/admin/

进入登录界面,输入刚才的用户和密码,就可以看到界面如下:

其中blog是我们的应用,点击进去可以添加文章,好了,今天我们就先到这里,总结下我们今天学习了什么:

1、创建django项目和应用

2、创建Model,建立数据库表

3、设置settings文件,包含blog

4、设置urls文件,确定访问网站的url

5、注册我们的app,集成django-admin

6、访问我们的后台,添加文章

转载于:https://www.cnblogs.com/itlqs/p/5861404.html

相关文章:

  • openstack openrpc
  • python中json和字符编码的转换
  • 【spring-boot】spring aop 面向切面编程初接触--切点表达式
  • Keras 深度学习框架相关资源(MD版)
  • [译]Python中的类属性与实例属性的区别
  • 如何利用业余时间快乐的赚钱
  • 洞悉linux下的Netfilteriptables:什么是Netfilter?
  • 自执行函数 闭包
  • 一周规划汇总_2016-09-18
  • wdcp日志
  • 【脚本】新增未扩展磁盘容量
  • Linux中rz和sz命令用法详解
  • c#用牛顿法计算根号下2的值
  • hadoop命令报错:权限问题
  • welcome-file-list标签的控制作用以及在springmvc中此标签的的配置方式
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • canvas 高仿 Apple Watch 表盘
  • Centos6.8 使用rpm安装mysql5.7
  • CentOS7简单部署NFS
  • css属性的继承、初识值、计算值、当前值、应用值
  • dva中组件的懒加载
  • flutter的key在widget list的作用以及必要性
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JS 面试题总结
  • Linux Process Manage
  • markdown编辑器简评
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • nodejs:开发并发布一个nodejs包
  • PHP CLI应用的调试原理
  • Python利用正则抓取网页内容保存到本地
  • Twitter赢在开放,三年创造奇迹
  • Vue.js 移动端适配之 vw 解决方案
  • Webpack 4 学习01(基础配置)
  • 初识MongoDB分片
  • 从零开始的无人驾驶 1
  • 从重复到重用
  • 解析带emoji和链接的聊天系统消息
  • 马上搞懂 GeoJSON
  • 前端之React实战:创建跨平台的项目架构
  • 如何利用MongoDB打造TOP榜小程序
  • 如何选择开源的机器学习框架?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 7行Python代码的人脸识别
  • Hibernate主键生成策略及选择
  • PostgreSQL之连接数修改
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (JS基础)String 类型
  • (附源码)spring boot车辆管理系统 毕业设计 031034