Django 入门实战 创建一个简单博客

http://39.96.86.88/2020/04/20/django

头脑一热,想学django,视频看完,人都傻了。

创建一个名为myblog的django项目(myblog目录相当于一个容器,包含基本配置)

django-admin startproject myblog

运行自带服务器默认8000端口

python manage.py runserver 自定义端口

image-20200419111005242

wsgi.py   		python服务器网关接口
urls.py   		配置url(手动)
settings.py 	核心配置文件
__init__.py		声明当前文件夹为可调用模块(一般为空)

创建应用 blog

在manage.py同级目录下
python manage.py startapp blog
添加应用名(这里就是blog)到settigs.py的installed_apps中

migrations		数据移植模块
admin.py		后台配置文件
apps.py			应用配置
models.py		数据模块
tests.py		自动化测试模块
views.py		执行相应的代码所在模块
https://www.imooc.com/video/13934

编辑blog.views
编辑urls.py

完善url

新建一个template

在blog下创建一个templates的的根目录

image-20200419133642122

templates下创建一个html文件

image-20200419133807749

在views.py中返回render() 渲染

image-20200419133955825

image-20200419134027451

加一个字典

image-20200419134401396

调用

image-20200419134745284

tmplate注意点

先创建一个新的app
python manage.py startapp blog2
将blog2添加到installed_apps

image-20200419135153269

将blog中的templates与urls.py复制到blog2中

将index改为blog 与 blog2

image-20200419140059551

将blog的views.py的字典去掉,并将函数复制到blog2中

image-20200419140203380

image-20200419140245857

去容器里加上url

image-20200419140407415

这里blog2却输出了blog的内容(django将index文件搞混了)

image-20200419140716933

因为这里django会按照installed_apps中的顺序查找templates(相当于index.html),因此这里index的重名造成了上述情况

解决方法:将index.html放在templates下以app名为名称的文件夹里(还要检查views.py里的url里的路径是否正确)

image-20200419141810704

编写Models

一个Model对应数据库中的一张数据表(ORM对象关系映射)

image-20200419194051743

添加 类(字段即为类里面的属性)

image-20200419195100768

image-20200419194910143

生成数据表

python manage.py makemigrations app名称  --》准备
python manege.py migrate  -->运行

image-20200419195651614

生成的移植文件

image-20200419195902326

查看sql语句

python manage.py sqlmigrate blog 0001

image-20200419200106171

生成的数据库

image-20200419200251619

添加一行新的(软件是 sqlite expert personal)

image-20200419203121057

页面呈现数据 view.py里添加

image-20200419203447933

并且要传递到前端,所以加上

image-20200419221558193

image-20200419221703485

到前端用这两个调用

image-20200419221841083

成功

image-20200419221949685

7-1 Admin

django自带的后台管理系统(能在里面操作数据库)

配置admin
先创建一个(超级)用户
python manage.py createsuperuser

image-20200419223126068

访问localhost:8000/admin,输入密码(可以修改settings.py里的language_code为’zh_Hans’ zh-cn)

image-20200419223136932

配置admin

image-20200419223750543

添加

image-20200419224012934

不知道为什么运行不了,解决方法是将models改为 .models 然后管理系统成功显现出blog内容

image-20200419224351031

创建一个新的后文章后,发现管理界面的文章标题很不方便

image-20200419224843400

image-20200419225032611

image-20200419225353494

image-20200419225402710

这样一个雏形博客就搭好了,接下来是完善

完善博客

展示数据时用两个括号{ {}} ,这里用了一个{% %}

image-20200420091803536

主界面:

为了获取所以文章将这里的get换成all,参数也不需要,所有article加上s

image-20200420092308295

修改前端index

image-20200420090532335

成功,这样主界面的链接就完成了

image-20200420090705400

接下来就是将文章传到链接上去了

添加:

image-20200420131240855

新建artile_pag.html

image-20200420131516521

然后添加url,然后访问/blog/article/1

image-20200420132001186

这里出现了问题,再次修改

image-20200420133144684

访问成功

image-20200420133300560

接下来是将这些url与按钮链接起来

image-20200420133731830

image-20200420133813458

添加命名空间

image-20200420135359235

image-20200420134038291

html里添加url

image-20200420134256988

这样就能从博客主页面点击按钮转跳了

博客撰写页面

接下来就是写文章的功能了

创建一个新的html文件

image-20200420141303677

显示这个页面

image-20200420141612442

添加url

image-20200420141719285

这样就有了编辑功能了

image-20200420141821858

虽然丑是丑了点,但是

image-20200420142640469

然后是接收写的文章的数据

image-20200420142944621

image-20200420143333635

添加url

image-20200420143520696

添上转跳的url,并且添上跨站请求的token

image-20200420143827897

如果还是出错就注释掉下列这行代码

image-20200420144213919

这样就能在edit下创建文章了

image-20200420144429567

image-20200420144534778

现在也能将主页的 新文章 的链接放上去了
在这里插入图片描述

接下来是修改文章的功能

image-20200420144924221

image-20200420144851171

修改响应函数

image-20200420151059522

添加参数

image-20200420150245551

添加前端的url

image-20200420150429558

image-20200420150507359

出现报错请重新访问index.html.

这时点击修改文章就会跳转到对用的页面,但此时没有文章的原始数据

注意这里的代码复用,不用全敲

image-20200420152148667

这时再点修改文章,就会显示数据了

image-20200420151634732

但是还不能保存修改的数据

我真的累了,直接上图

image-20200420152413226

image-20200420153134804

成功

总结

django真不是人学的

猜你喜欢

转载自blog.csdn.net/qq_43478096/article/details/105636517