热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用dango框架搭建博客网站

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

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=32,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//', views.article_page,name='article_page'),
    path('edit//', views.edit_page,name='edit_page'),
    path('edit/action', views.edit_action,name='edit_action'),
]
blog/urls.py

article_page.py








{{ article.title }}




{{ article.content }}






修改文章

index.html

"en">

    "UTF-8">
    


{{ article.title }}


{{ article.content }}



"{% url 'edit_page' article.id %}">修改文章

edit_page.html

"en">

    "UTF-8">
    


"{% url 'edit_action' %}" method="post">
   {% csrf_token %}
    {%  if article %}
        "hidden" name="article_id" value="{{ article.id }}">
    
    "text" name="title" value="{{ article.title }}"/>
    
"text" name="content" value="{{ article.content }}"/>
{% else %} "hidden" name="article_id" value="0"> "text" name="title" value=""/>
"text" name="content" value=""/>
{% endif %} "submit" value="提交"/>

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)=='0':#如果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','0')#得到编辑文章的id
    if article_id=='0':#如果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


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
author-avatar
捕鱼达人2602906405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有