算是给这段时间学django做一个考验式总结吧,总的来说有难度,我是边做边写这个记录的,头一次真正意义上做一个全部自己动手的项目,目前也不知道能做到哪一步。刚下手,有点像无头苍蝇一样,不知道从哪一步开始做起,也上网查了一下创建博客的步骤,还是一头雾水,要么不是我想要的,要么就是太高大上的,真照着人家那个做也只是照虎画猫,最终啥也不是,那就自己过河摸石头吧。如果有哪位大佬不经意间路过,有空的话请指点一二,露点指缝间的小东西给小的,小的感激不尽。又或者有跟我一样的同学,也可以一起讨论学习。
conda create -n 环境名 [python=3.6]
这里我用的环境名是pydj——
conda create -n pydj python=3.6
django:djano1.8.2数据库:mysqlmvc框架随便取个名建个项目,在容易发现的地方建个文件夹,去文件夹里打上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成功执行后会生成文件夹migrations——
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 创建个人博客的第四天