利用django 实现个人博客 全记录(二)
上一篇文章已经把基础环境搭建好了
一 创建app
D:\学习\python3.7.3\python manage.py startapp blog
修改 博客的 models.py
class Blog(models.Model):
title = models.CharField(max_length=)
#这里要注意外键关联 如果 关联的类没有在之前没用定义 那么一定要加引号 这里采用一个博客对应一个博客类型 一一对应
blog_type = models.ForeignKey('BlogType',on_delete=models.DO_NOTHING)
content = models.TextField()
author = models.ForeignKey(User,on_delete=models.DO_NOTHING)
created_time = models.DateTimeField(auto_now_add=True)
last_updated_time = models.DateTimeField(auto_now=True)
def __str__(self):
return "<Blog: %s>" %self.title class BlogType(models.Model):
type_name=models.CharField(max_length=) def __str__(self):
return self.type_name
模板修改好了 还需要修改settings.py 文件
加入
import pymysql # 一定要添加这两行!通过pip install pymysql!
pymysql.install_as_MySQLdb() DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'HOST': '123.2X7.XX9.194',
'USER': 'root',
'PASSWORD': 'XXX',
'PORT': '',
}
} #修改
LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = True
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
安装 pymysql 包
将改变应用于 数据库
>D:\学习\python3.7.3\python manage.py makemigrations
>D:\学习\python3.7.3\python manage.py migrate
创建超级admin用户
python manage.py createsuperuserr
最后 为了能在admin里面显示 需要admin.py里面注册一下
from .models import BlogType,Blog @admin.register(BlogType)
class BlogTypeAdmin(admin.ModelAdmin):
list_display = ("id", "type_name") @admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
list_display = ("title","blog_type","author","create_time","last_updated_time" )
# Register your models here. ##也可以
#admin.site.register(BlogType) 这样注册的确定是 全部都会显示在后台
启动项目发现报错
raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
修改配置文件 注释报错

继续启动还是报错
query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

继续修改配置文件 把decode 修改为encode
登陆后


利用django 实现个人博客 全记录(二)的更多相关文章
- 动手实践记录(利用django创建一个博客系统)
1.添加一个分类的标签,和主表的关系是 外键 class Category(models.Model): """ 分类 """ name = ...
- 用Python和Django实现多用户博客系统(二)——UUBlog
这次又更新了一大部分功能,这次以app的形式来开发. 增加博客分类功能:博客关注.推荐功能(ajax实现) 增加二级频道功能 更多功能看截图及源码,现在还不完善,大家先将就着看.如果大家有哪些功能觉的 ...
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.测试仓储层.业务层是否能实现对数据库表的操作 1.在52MVCBlog.IRepository程序集下创建IsysUserInf ...
- 利用Hexo搭建个人博客-环境搭建篇
我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...
- Django搭建简易博客
Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...
- [置顶] 创建GitHub技术博客全攻略
[置顶] 创建GitHub技术博客全攻略 分类: GitHub2014-07-12 13:10 19710人阅读 评论(21) 收藏 举报 githubio技术博客网站生成 说明: 首先,你需要注册一 ...
- 基于django的个人博客网站建立(三)
基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...
- 基于django的个人博客网站建立(六)
基于django的个人博客网站建立(六) 前言 今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程网站效果可点击这里访问 主要内容 ...
- 基于django的个人博客网站建立(五)
基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...
随机推荐
- c++ vector容器自增长
#include <iostream>#include <vector> using namespace std; int main(){ vector<int> ...
- sonar汉化
- WordPress自定义菜单和修改去除多余的css
这里主要是用于模板制作的,一般前端已经写好了,我们只要将前端的内容套用WordPress后台就可以了. 所以我们在模板制作过程中,需要自定义WordPress菜单. 在functions.php文件中 ...
- 【ABAP系列】SAP ABAP 字符编码与解码、Unicode
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 字符编码与解码 ...
- Linux中移动,复制,删除,打包排除某个目录或文件
移动,复制,删除排除某个文件或目录 cp !(file1|dir2) /data/ 复制文件到/data/,排除file1和dir2 mv !(file1|dir2) /data/ 移动文件到/dat ...
- js 数组遍历 对象遍历
一.数组遍历 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9]; for ( var i = 0; i <arr.length; i++){ console.lo ...
- poj3449(判断直线相交)
题目链接:https://vjudge.net/problem/POJ-3449 题意:给出若干几何体,判断每个几何体与其它几何体的相交情况,并依次输出. 思路: 首先要知道的是根据正方形对角线的两个 ...
- NEO4J (二)
README 整理 kernel.impl.coreapi 这个包包含核心API的直接实现.核心API是org.neo4j中定义的API.graphdb及其子包. 这里的类是实现细节,可能会在不通知的 ...
- java 自带 http get/post 请求
请求参数,请求参数应该是 name1=value1&name2=value2 的形式. import java.io.BufferedReader; import java.io.IOExce ...
- 剑指offer32:把数组排成最小的数
1 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 2 思路 ...