• 用dango框架搭建博客网站


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

    (1)先把Pycharm关闭。

    (2)然后打开c:windowssystem32driversetc文件夹中的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')),
    myblgurls.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="0">
         <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)=='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

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    我是如何折腾.NET Resx资源文件的 当计算机中的资源已经足够多时,我们也要学会尽可能的借用
    当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决
    分享.NET ERP项目开发中应用到的重量级工具 选择合适的工具和资源,做项目效率高而且规范程度高
    Management Console ERP项目开发辅助工具 正确的方法+适当的工具使做项目的效率高而且问题少
    ERP系统管理员的工具箱 推荐几款优秀的数据比较同步工具 Data Compare and Sync tool
    亲自下载CSDN社区600万用户数据 设计两条编程题目考验你的.NET编程基础
    知识管理系统Data Solution研发日记之十六 保存服务器文档为本机PDF格式
    【转】好的学习方法
    iPhone开发学习笔记[7/50]在xcode里配置成功subversion
    iPhone开发学习笔记[4/50]表视图的使用
  • 原文地址:https://www.cnblogs.com/wl2017/p/9512959.html
Copyright © 2020-2023  润新知