1.我早先下载了Anaconda35.0.1。但是Anaconda自带的编辑器Spyder我用的不太熟练。所以还是使用Pycharm来编辑代码。我的Pycharm试用期已经到了,所以需要注册码来使用Pycharm。

(1)先把Pycharm关闭。

(2)然后打开c:\windows\system32\drivers\etc文件夹中的host文件。

(3)将0.0.0.0 account.jetbrains.com添加到hosts文件最后

(4)   保存关闭。因为权限问题无法修改时,重新创建一个hosts文件,然后覆盖原来的hosts文件。

(5)   打开http://idea.lanyus.com/。得到注册码。

(6)打开Pycharm输入注册码。继续使用Pycharm.

2.打开Pycharm。配置Pycharm的python环境,让Pycharm使用Anaconda35.0.1中的库。

3.新建dango项目myblog。

models.py:

from django.db import models

# 类
class Article(models.Model):
title=models.CharField(max_length=,default='title')
content=models.TextField(null=True) def __str__(self):
return self.title

urls.py:

from django.contrib import admin
from django.urls import path,include urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),

myblg\urls.py

from django.urls import path
from . import views
#页面路径
urlpatterns = [
path('index/',views.index),
path('article/<int:article_id>/', views.article_page,name='article_page'),
path('edit/<int:article_id>/', views.edit_page,name='edit_page'),
path('edit/action', views.edit_action,name='edit_action'),
]

blog/urls.py

article_page.py

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<br/>
<h3>{{ article.content }}</h3>
<br/>
<br/>
<a href="{% url 'edit_page' article.id %}">修改文章</a>
</body>
</html>

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ article.title }}</h1>
<br/>
<h3>{{ article.content }}</h3>
<br/>
<br/>
<a href="{% url 'edit_page' article.id %}">修改文章</a>
</body>
</html>

edit_page.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Edit_page</title>
</head>
<body>
<form action="{% url 'edit_action' %}" method="post">
{% csrf_token %}
{% if article %}
<input type="hidden" name="article_id" value="{{ article.id }}">
<label>文章标题</label>
<input type="text" name="title" value="{{ article.title }}"/>
<br/>
<label>文章内容</label>
<input type="text" name="content" value="{{ article.content }}"/>
<br/>
{% else %}
<input type="hidden" name="article_id" value="">
<label>文章标题</label>
<input type="text" name="title" value=""/>
<br/>
<label>文章内容</label>
<input type="text" name="content" value=""/>
<br/>
{% endif %}
<input type="submit" value="提交"/>
</form>
</body>
</html>

views.py:

from django.shortcuts import render
from django.http import HttpResponse
from . import models
#响应函数
def index(request):#函数名,目录页面
articles=models.Article.objects.all()#得到全部的数据库中的article
return render(request, 'blog/index.html', {'articles': articles})#跳转到目录页面,跳转页面的参数 def article_page(request,article_id):#查看文章
article=models.Article.objects.get(pk=article_id)#得到数据库中id为article_id的article数据
return render(request,'blog/article_page.html',{'article':article})
def edit_page(request,article_id):#编辑文章
if str(article_id)=='':#如果article_id为0,则为新文章
return render(request,'blog/edit_page.html')#跳转到文章编辑页面
article=models.Article.objects.get(pk=article_id)#否则article为相应id的文章
return render(request, 'blog/edit_page.html', {'article': article})#编辑该文章 def edit_action(request):#编辑文章提交函数
title=request.POST.get('title','TITLE')#接受action的参数
content=request.POST.get('content','CONTENT')
article_id=request.POST.get('article_id','')#得到编辑文章的id
if article_id=='':#如果i编辑的文章id为0
models.Article.objects.create(title=title,content=content)#在数据库中新增article数据
articles = models.Article.objects.all()#得到全部的数据库中的article
return render(request, 'blog/index.html', {'articles': articles})#跳转到目录页面,跳转页面的参数
#获得对象
article=models.Article.objects.get(pk=article_id)
#修改数据库数据
article.title=title
article.content=content
article.save()
#跳转到文章页面
return render(request, 'blog/article_page.html', {'article': article})

全部源代码网址:https://github.com/wangli-wangli/python/tree/master/myblog

dango框架使用mysql教程:https://www.cnblogs.com/fengri/articles/django5.html

用dango框架搭建博客网站的更多相关文章

  1. Hexo系列(一) 搭建博客网站

    写在前面的话:本系列文章主要参考 Hexo官方说明文档,同时结合自己在使用过程中的一些心得体会,撷取下来,和大家分享分享.好,下面闲话不多说,马上开始我们的 Hexo 之旅吧 温馨提醒:博主使用的操作 ...

  2. Django搭建博客网站(四)

    Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...

  3. Django搭建博客网站(三)

    Django搭建博客网站(三) 第三篇主要记录view层的逻辑和template. Django搭建博客网站(一) Django搭建博客网站(二) 结构 网站结构决定我要实现什么view. 我主要要用 ...

  4. Django搭建博客网站(二)

    Django搭建自己的博客网站(二) 这里主要讲构建系统数据库Model. Django搭建博客网站(一) model 目前就只提供一个文章model和一个文章分类标签model,在post/mode ...

  5. 部署项目到服务器 & 搭建博客网站

    搭建博客网站 作为名程序员,或者是网络编程爱好者,拥有一个自己的博客网站再好不过,本篇文章手把手教你部署自己的网站

  6. Django搭建博客网站(一)

    Django搭建自己的博客网站(一) 简介 这个系列主要是通过使用Django这个python web框架实现一个简单的个人博客网站.对Django有疑问可以上Django官网查文档. 功能 后台管理 ...

  7. django学习笔记——搭建博客网站

    1. 配置环境,创建django工程 虚拟环境下建立Django工程,即创建一个包含python脚本文件和django配置文件的目录或者文件夹,其中manage.py是django的工程管理助手.(可 ...

  8. Linux下-LNMP环境搭建博客网站(全过程)

    通常我们所说的LNMP是指一个网站基本的组织框架,即Linux系统支持,Nginx静态服务,Mysql数据库支持以及PHP动态编程语言支持.目前Mysql数据库被Oracle数据库分析公司收购,其创始 ...

  9. GitHub+Hexo+gulp搭建博客网站

    一.前期准备 1.注册GitHub账号. 不做说明 2.创建仓库 创建一个新的仓库来放置我们的文件. 3.下载安装Node.js https://nodejs.org/en/   两个版本,选择右边那 ...

随机推荐

  1. 项目一:在线下单(补充) activeMQ使用(重点) 重构客户注册功能,发短信功能分离

    1 课程计划 1.在线下单(补充) 2.activeMQ使用(重点) n 简介和安装 n activeMQ入门案例 n spring整合activeMQ应用 3.重构客户注册功能,发短信功能分离 n  ...

  2. Struts 第一天

    请简述下Struts2 的执行流程. 首先是,启动tomcat服务器,这时候会加载web.xml,当读到filter标签时,会创建过滤器对象.struts2的核心过滤器(StrutsPrepareAn ...

  3. 杭电acm 1021题

    题意是要求能被3整除的数所以为了避免大数据的产生,直接对每个数据求余,然后相加 #include "iostream" using namespace std; int main( ...

  4. 安装Fastqc软件遇到的坑

    由于之前的HPC太难用了,所以决定搬家到十楼的工作站,于是就免不了配置必要的工作环境,其中一个少不了要安装的软件是就是fastqc,因为它太常用了. 我先是用conda安装,因为conda实在是太方便 ...

  5. Python程序设计5——函数

    本章介绍Python中模块和函数的概念. Python程序是由包.模块和函数三者组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合.Python提供的许多工具包和模块安装在Pyth ...

  6. ssh远程执行命令使用明文密码

    经过不懈的搜索终于找到ssh远程执行命令使用明文密码使用sshpass. 例子: sshpass -p "sequoiadb" ssh root@localhost "l ...

  7. php 函数追踪扩展 phptrace

    php 函数追踪扩展 phptrace 介绍 phptrace 是一个低开销的用于跟踪.分析 php 运行情况的工具. 它可以跟踪 php 在运行时的函数调用.请求信息.执行流程.并且提供有过滤器.统 ...

  8. Python--详解TKinter类库

    为了学习python3.5的tkinter,于是我去官网找了找相关部件的一些文档,读起来有点绕口,觉得还是自己来实践实践,看看视频感觉用处会更大,然后就有了下面的一部分常用的总结, 查看tkinter ...

  9. 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析

    一.提出疑惑 上一篇文章中,分析了synchronized关键字的用法.但是好像遗漏了一种情况. 那就是: synchronized(obj){/*同步块代码*/} 一般有以下几种情况: (1)syn ...

  10. iframe加载的文档高度

    var clientHeight = $("#iframe").contents().find("body").height();