使用Django搭建个人博客网站

news/2024/4/29 1:44:25/文章来源:https://blog.csdn.net/weixin_34194551/article/details/88719532

创建项目

首先要在命令行创建Django项目:

$ django-admin startproject my_blog

初始化设置

my_blog/my_blog/setting.py中修改下面几个选项:

clipboard.png

添加等待要创建的应用:

clipboard.png

创建应用

现在来创建博客应用
进入刚刚创建的my_blog项目后执行:

$ python manage.py startapp blog

可以看到已经创建了blog应用

clipboard.png

创建模型与数据库

使用mysql数据库

这个坑留着,先用自带的sqlite。
链接:https://blog.csdn.net/mildddd...

编写模型

打开my_blog/blog/models.py添加如下内容:

from django.db import models
from django.contrib.auth.models import User# Create your models here.class BlogType(models.Model):type_name = models.CharField(max_length=50)def __str__(self):return self.type_name  # 显示标题类型class Blog(models.Model):title = models.CharField(max_length=50) # 标题blog_type = models.ForeignKey(BlogType,on_delete=models.DO_NOTHING) # 标题类型author = models.ForeignKey(User,on_delete=models.DO_NOTHING) # 作者content = models.TextField() # 文章内容created_time = models.DateTimeField(auto_now_add=True) # 创建时间last_updated_time = models.DateTimeField(auto_now_add=True) # 上一次更新时间def __str__(self):return "<Blog: %s>" % self.title # 显示标题

clipboard.png

注意:想要应用同一文件的类,要把被引用的类放在应用这个类的类之前。例如这里要把BlogType类放在Blog类之前。

初始化数据库

先进行数据库迁移:

$ python manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OK
....

再来创建管理员:

$ python manage.py createsuperuser
:(输入用户名)root
:(输入邮箱)[[:blank:]] // 这里不需要可以直接空格
:(输入密码) zxc123456 // 太简单的密码不允许
:(重复密码) zxc123456
Superuser created successfully.

然后创建数据库:

$ python manage.py makemigrations
Migrations for 'blog':blog\migrations\0001_initial.py- Create model Blog- Create model BlogType- Add field blog_type to blog

编写管理界面

编辑my_blog/blog/admin.py:

from django.contrib import admin
from .models import Blog,BlogType # 引入模型@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','created_time','last_updated_time')  # 显示的内容

clipboard.png

编写视图

编写my_blog/blog/views.py

from django.shortcuts import render_to_response, get_object_or_404
from .models import Blog  # 引入models.py文件下的Blog模型def blog_list(request):context = {}context['blog'] = Blog.objects.all() # 博客列表return render_to_response('blog_list.html',context)def blog_detail(request,blog_pk):context = {}context['blog'] = get_object_or_404(Blog,pk=blog_pk) # 博客内容return render_to_response('blog_detail.html',context)

然后在blog目录下创建一个templates的文件夹,视图都将存放在里面。在里面创建blog_detail.htmlblog_list.html
blog_detail.html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>{{ blog.title }}</title>
</head>
<body><div><a href="{% url 'home' %}"><h3>My Blog</h3></a></div><h3>{{ blog.title }}</h3><p>{{ blog.content }}</p>
</body>
</html>

blog_list.html:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>My Blog</title>
</head>
<body>{% for blog in blogs %}<a href="{% url 'blog_detail' blog.pk %}"><h3>{{ blog.title }}</h3></a><p>{{ blog.content }}</p>{% endfor %}
</body>
</html>

编写访问路径

my_blog/blog/目录下创建urls.py

from django.urls import path
from . import viewsurlpatterns = [# http://localhost:8000/blog/#path('<int:blog_pk>',views.blog_detail,name="article_detail"),
]

clipboard.png

再去my_blog/my_blog/urls.py中设置:

clipboard.png

启动服务器

然后可以进管理界面查看效果了:

$ python manage.py runserver

浏览器输入:

http://127.0.0.1:8000/admin

输入刚刚的账号和密码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_717478.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dva开发一个cnode网站(1)

dva 首先是一个基于 redux 和 redux-saga 的数据流方案&#xff0c;然后为了简化开发体验&#xff0c;dva 还额外内置了 react-router 和 fetch&#xff0c;所以也可以理解为一个轻量级的应用框架。本教程是利用cnode的开放api来做一个一样的网站&#xff0c;以此来学习dva框架…

jq点击事件多次响应_营销型网站建设与响应式网站建设有什么区别?

除专业人士&#xff0c;普遍人对网站的种类区分概念都是很模糊的&#xff0c;只想着我想做一个网站&#xff0c;或是我想做一个很炫的网站&#xff0c;再或是我想做个网站帮助提高公司业绩。然而网站本身并没有区别&#xff0c;无论是标准型网站、营销型网站或是品牌型网站&…

前嗅ForeSpider教程:同一个网站中从另一页面采集数据

2019独角兽企业重金招聘Python工程师标准>>> 以图中网站的企业动态部分为入口地址&#xff0c;来展示如何在同一个网站从另一页面采集相关数据。 第一步&#xff1a;新建任务 ①点击左上角“加号”新建任务&#xff0c;如图1&#xff1a; 【图1】 ②在弹窗里填写采集…

web服务之Nginx网站服务

目录一、关于Nginx二、编译安装Nginx服务1、关闭防火墙2、安装依赖包3、创建运行用户、组4、编译安装Nginx5、检查、启动、重启、停止 nginx服务三、认识Nginx服务的主配置文件 nginx.conf1、编辑主配置文件2、全局配置3、HTTP 配置一、关于Nginx 一款高性能、轻量级Web服务软…

一个使用Ruby on Rails开发LBS网站的简单实例

一个使用Ruby on Rails开发LBS网站的简单实例 cheungmine 2011-7 这几天一直在学习使用Ruby on Rails(RoR)&#xff0c;想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者&#xff08;仅有几天时间&#xff09;来说&#xff0c;毕竟太复…

大型网站技术架构(七)网站的可扩展性架构

2019独角兽企业重金招聘Python工程师标准>>> 扩展性是指对现有系统影响最小的情况下&#xff0c;系统功能可持续扩展或提升的能力。 设计网站可扩展架构的核心思想是模块化&#xff0c;并在此基础上&#xff0c;降低模块间的耦合性&#xff0c;提供模块的复用性。模…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标&#xff0c;可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间&#xff0c;指从发出请求到最后收到响应数据所需要的时…

eclipse jsp没有提示_JSP+Spring+SpringMVC+Hibernate+Mysql实现的校园失物招领网站

项目简介项目来源于&#xff1a;https://github.com/wenlongup/LostAndFound因源github仓库无数据库文件&#xff0c;经过本人修改&#xff0c;现将该仓库重新上传至个人gitee仓库。张有路/LostAndFound​gitee.com本系统基于JSPSpringSpringMVCHibernateMysql的校园失物招领网…

asp网站短信api服务器,asp程序调用短信接口源码

asp程序调用短信接口源码更多作者:捷信通来源:www.jiexintong.cn日期:2014-07-31 17:59:31现在很多启用还在使用asp程序&#xff0c;我们技术总结出了asp程序调用短信接口源码例子&#xff0c;请参考&#xff0c;如果有疑问&#xff0c;欢迎各位客户联系我们&#xff1a;企业QQ…

域名+解析+GitHub来搭建自己的个人网站

域名解析GitHub来搭建自己的个人网站 标签&#xff1a; GitHub使用技巧 网站搭建 版权声明&#xff1a;本文为 icurious 的原创文章&#xff0c;可以转载&#xff0c;但请务必注明作者和出处&#xff01;&#xff01;&#xff01; 原文链接&#xff1a;www.blankspace.cn 摘…

coursera网站课程视频无法播放?

本人为win10系统&#xff0c;在coursera网站修了几门课程&#xff0c;发现无法查看课程视频。 尝试解决一下&#xff1a; 1. 以管理员身份打开记事本 2. 在记事本中打开系统hosts文件 TIP&#xff1a;一般在C:\Windows\System32\drivers\etc 路径下 3. hosts文件中最后一…

屏蔽网站广告的Chrome谷歌浏览器插件推荐和下载地址

推荐插件&#xff1a; AdGuard AdBlockerAdvertising TerminatorAdBlockAdblock Plus 下载地址&#xff1a; Chrome插件下载官方下载

解决 python 向网站请求数据出现 check_hostname requires server_hostname 错误

问题背景 更新了python的一些库后&#xff0c;发现原来能用的爬虫现在不能用了&#xff0c;尴尬。然后网上找了一下&#xff0c;发现是更新库造成的&#xff0c;check_hostname requires server_hostname 错误 是由于新版本的 urllib3 而出现的&#xff0c;一个简单的解决办法是…

给网站添加建站时长的js代码

背景 老板让我给他写个人主页&#xff0c;然后用到了这个东西&#xff0c;记录下 代码 <!--这是html代码&#xff0c;放在你想显示建站时间的地方&#xff0c;样式啥的自己改就行--> <span id"sitetime" style"color: rgb(248, 247, 247);">…

给网站添加访问地图3d版,平面版

背景 给老板写个人主页的时候用到的&#xff0c;记录下 效果展示 3D版 平面版 实现 打开 https://clustrmaps.com/site/1bf58&#xff0c;创建一个小部件 输入你要统计的网站地址 选择你要那个版本的 3D版&#xff0c;右边那个 点进去有相应的js代码&#xff0c;复制就行…

利用不蒜子统计网站的访问量

背景 给老板写个人主页&#xff0c;用到了记录下 代码 <head><script type"text/javascript" src"https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> </head><body><div style"color:…

php制作小米网页版,基于LNMP的小米电商网站搭建——运维实战手记第一篇

分享一篇文章&#xff0c;来自马哥教育学员阿龙。总项目流程图&#xff0c;详见Linux运维企业架构实战系列 - 阿龙along - 博客园实战一&#xff1a;搭建lnmp及类小米等商业网站的实现环境&#xff1a;关闭防火墙&#xff0c;selinux1、安装包&#xff0c;开启服务yum -y insta…

h5实现网页内容跟随窗口大小移动_H5网站建设设计有哪些优势?

近些年随着h5网站建设的普及&#xff0c;越来越多的网站采用这一建站方案。h5网站建设有什么优势呢&#xff1f;今天小编和各位来聊聊h5网站建设的优势。随着Flash的终结&#xff0c;h5技术取代了Flash在移动设备中的地位&#xff0c;成为移动平台的唯一标准。在HTML5的应用场景…

vba获取正在运行网站的源码_早日学习VBA,早日上手VBA,早日受益VBA

在平台上&#xff0c;我讲解VBA已经有一年多了,有些朋友能理解VBA的可用之处&#xff0c;但仍有人不断在问:VBA可以做什么呢?应用VBA有什么好处呢&#xff1f;确实&#xff0c;很多的朋友在职场中久了&#xff0c;延续着前人的习惯&#xff0c;有些时候应该改一下了&#xff0…

电子商务网站建设策划书服装_分享:服装设计/服饰公司企业网站(官网)建设制作策划方案...

分享&#xff1a;服装设计/服饰公司企业网站(官网)建设制作策划方案&#xff01;随着市场经济的发展&#xff0c;我国的服装企业开始由卖方市场转为买方市场&#xff0c;各个品牌为了生存开始在这个市场中厮杀&#xff0c;较以往相比&#xff0c;现在企业的利润率逐渐下降&…