新手用python Django 创建个人博客的第一天

用python Django 创建个人博客的第一天

  • 搭建环境
  • 创建项目
  • 项目开始
    • 创建应用
  • 数据库
    • 执行迁移数据库
    • 注册后台管理
  • 运行

算是给这段时间学django做一个考验式总结吧,总的来说有难度,我是边做边写这个记录的,头一次真正意义上做一个全部自己动手的项目,目前也不知道能做到哪一步。刚下手,有点像无头苍蝇一样,不知道从哪一步开始做起,也上网查了一下创建博客的步骤,还是一头雾水,要么不是我想要的,要么就是太高大上的,真照着人家那个做也只是照虎画猫,最终啥也不是,那就自己过河摸石头吧。如果有哪位大佬不经意间路过,有空的话请指点一二,露点指缝间的小东西给小的,小的感激不尽。又或者有跟我一样的同学,也可以一起讨论学习。

搭建环境

  • 虚拟环境版本:python3.6

conda create -n 环境名 [python=3.6]

这里我用的环境名是pydj——

conda create -n pydj python=3.6

  • django:djano1.8.2
  • 数据库:mysql
  • mvc框架

创建项目

随便取个名建个项目,在容易发现的地方建个文件夹,去文件夹里打上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是我的应用名,这时候项目里又会多了个文件夹——
新手用python Django 创建个人博客的第一天_第1张图片
打开setting.py,注册应用——
新手用python Django 创建个人博客的第一天_第2张图片
找到ISNTALLED_APP,在末尾写上自己的应用名。

数据库

开始安排一下自己的数据库,先导入pymysql这个包,可以在控制台下或电脑自带的命令行下的虚拟环境里用pip install pymysql,也可以在pycharm里的设置里找到自己的项目,然后点旁边的+号自己找。

新手用python Django 创建个人博客的第一天_第3张图片
做完这些就回到setting.py,找到DATABASES——
新手用python Django 创建个人博客的第一天_第4张图片
接下来用cmd或者自己用的数据库工具创建一个空的数据库,编码设置utf8和utf8_bin,创建完就放到一遍去,回到项目。
到应用中的__init__.py——
新手用python Django 创建个人博客的第一天_第5张图片
原本的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——
新手用python Django 创建个人博客的第一天_第6张图片

注册后台管理

Django有一个自己的管理员后台,我们可以在里面对数据库进行操作。
先在控制台创建一个超级管理员——新手用python Django 创建个人博客的第一天_第7张图片
找到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

得到
新手用python Django 创建个人博客的第一天_第8张图片

当你看到下面这个界面就算成功了第一步——
新手用python Django 创建个人博客的第一天_第9张图片
然后去我们的管理员后台
新手用python Django 创建个人博客的第一天_第10张图片
用我们前面创建的超级用户superuser进行登录。看到下面这个就算第二步成功了。
新手用python Django 创建个人博客的第一天_第11张图片
点击下面Blog_App里的两个选项,进里面就可以看到——
新手用python Django 创建个人博客的第一天_第12张图片
空空如也的后台数据库表~
这里面也可以进行添加,右边那个加号点下去就可操作了,不过这些我就留到用前端去操作了。
正好12点,明天继续。

系列链接——

新手用python Django 创建个人博客的第一天

新手用python Django 创建个人博客的第二天

新手用python Django 创建个人博客的第三天

新手用python Django 创建个人博客的第四天

你可能感兴趣的:(python新手入门,创建个人博客,python,django,mysql)