算是给这段时间学django做一个考验式总结吧,总的来说有难度,我是边做边写这个记录的,头一次真正意义上做一个全部自己动手的项目,目前也不知道能做到哪一步。刚下手,有点像无头苍蝇一样,不知道从哪一步开始做起,也上网查了一下创建博客的步骤,还是一头雾水,要么不是我想要的,要么就是太高大上的,真照着人家那个做也只是照虎画猫,最终啥也不是,那就自己过河摸石头吧。如果有哪位大佬不经意间路过,有空的话请指点一二,露点指缝间的小东西给小的,小的感激不尽。又或者有跟我一样的同学,也可以一起讨论学习。
conda create -n 环境名 [python=3.6]
这里我用的环境名是pydj——
conda create -n pydj python=3.6
随便取个名建个项目,在容易发现的地方建个文件夹,去文件夹里打上cmd进入命令行,然后开始进入刚刚创建的虚拟环境——
activate pydj
看到上面括号里的环境名就可以开始创建自己的项目了,在搭建项目之前,先打上django的包
pip install django==1.8.2
我这里用的版本是1.8.2,这个版本适合我这种新手练手,很多东西在后面的版本改动有点多,先拿这个练手,后面去阅读新版本的源码也不会太吃力,这就跟学开车是一样的,不可能让我们一开始开上飞机,就像我用的python3.6一样,更高的版本其实远没有这些适合我们,也还在更新完善。
继续,提示Successfully,就表示django环境就安装成功了。
终于开始创建项目了——
django-admin startproject blog
这里的blog就是我的项目名了,也从这一步开始,我们就可以脱离电脑的命令行去专业工具上开始我们的项目了。
我用的是pyCharm,相信很多人都是,也建议用这个,idea之类的没这个专业。
用pyCharm打开刚刚创建的项目,然后用pyCharm自带的控制台Terminal进入虚拟环境(进入方法同上),已经进入的可以省去这一步。
接下来创建应用。
django-admin startapp blog_app
blog_app是我的应用名,这时候项目里又会多了个文件夹——
打开setting.py,注册应用——
找到ISNTALLED_APP,在末尾写上自己的应用名。
开始安排一下自己的数据库,先导入pymysql这个包,可以在控制台下或电脑自带的命令行下的虚拟环境里用pip install pymysql
,也可以在pycharm里的设置里找到自己的项目,然后点旁边的+号自己找。
做完这些就回到setting.py,找到DATABASES——
接下来用cmd或者自己用的数据库工具创建一个空的数据库,编码设置utf8和utf8_bin,创建完就放到一遍去,回到项目。
到应用中的__init__.py——
原本的init文件里是没有任何东西的,我们在django中用mysql需要在这里写上图中的这两句代码,用来给Django识别我们要用mysql,如果没有这两句话,接下来我们写的代码,原本是对的,但它会报错,嗯,报的还是setting.py里的错,因为它要的是MySQLdb这个名,但我功力不够,给不了,那只能给它换个名字。
做完这个,可以开始建模了。
在models.py里——
from django.db import models
# Create your models here.
class UserInfo(models.Model):
buser = models.CharField(max_length=20,unique=True)
bpassword = models.CharField(max_length=64)
bemail = models.CharField(max_length=40)
bimage = models.ImageField()
def __str__(self):
return self.buser
class BlogView(models.Model):
btitle = models.CharField(max_length=100) # 博客标题
btext = models.TextField()
bdata = models.DateField(auto_now=True) # 创建时间
bread = models.IntegerField(default=0) # 阅读数
bup = models.IntegerField(default=0) # 点赞数
b_low = models.IntegerField(default=0) # 踩数
bcomment = models.CharField(max_length=200) # 评论数
isDelete = models.BooleanField(default=0) # 是否删除
buserinfo = models.ForeignKey('UserInfo') # 关联外键
# str便于显示,否则查询的时候就只是返回该对象,而非btitle里的内容,可注释掉自行查看,上同
def __str__(self):
return self.btitle
这就是我基本的模型。
在控制台分别执行这两句代码——
python manage.py makemigrations
python manage.py migrate
Django有一个自己的管理员后台,我们可以在里面对数据库进行操作。
先在控制台创建一个超级管理员——
找到admin.py
输入以下代码
from django.contrib import admin
from blog_app.models import *
# Register your models here.
# 创建后台管理视图
class UserInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'buser', 'bpassword', 'bemail', 'bimage']
# 创建后台管理视图
class BlogViewAdmin(admin.ModelAdmin):
list_display = ['id', 'btitle', 'btext', 'bdata', 'bread', 'bup', 'b_low', 'bcomment', 'isDelete', 'buserinfo']
admin.site.register(UserInfo, UserInfoAdmin) # 注册
admin.site.register(BlogView, BlogViewAdmin) # 注册
# admin.site.register(UserInfo) # 初始注册写法,下同
# admin.site.register(BlogView)
写到这里基本的要素就齐了,也就是地基打好了。
在控制台运行以下代码——
python manage.py runserver
当你看到下面这个界面就算成功了第一步——
然后去我们的管理员后台
用我们前面创建的超级用户superuser进行登录。看到下面这个就算第二步成功了。
点击下面Blog_App里的两个选项,进里面就可以看到——
空空如也的后台数据库表~
这里面也可以进行添加,右边那个加号点下去就可操作了,不过这些我就留到用前端去操作了。
正好12点,明天继续。
系列链接——
新手用python Django 创建个人博客的第一天
新手用python Django 创建个人博客的第二天
新手用python Django 创建个人博客的第三天
新手用python Django 创建个人博客的第四天