Diango做blog.docx

本文介绍了Django Web应用框架的基本概念、特点、优缺点,以及其核心组件。Django以其完善的文档、全面的解决方案和强大的URL路由而备受青睐。文章还分享了一个简单的Django博客的实现,涉及数据库连接、后台管理、模板、视图、URL、Markdown和代码高亮等功能,并提到了需要注意的问题。
摘要由CSDN通过智能技术生成

diango_blog

Django简介

Django(维基百科) Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。

Django 于 2008年6月17日正式成立基金会。

Django吸引人的特点

在Python各种web框架中,Django的文档最完善、市场占有率最高、招聘职位最多!

优点

l  完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Djangobook)。

l  全套的解决方案,DjangoRails一样,提供全套的解决方案(full-stackframework + batteries included),基本要什么有什么(比如:cachesessionfeedormgeoauth),而且全部Django自己造,开发网站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。

l  强大的URL路由配置,Django让你可以设计出非常优雅的URL,在Django里你基本可以跟丑陋的GET参数说拜拜。

l  自助管理后台,admin interfaceDjango里比较吸引眼球的一项contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。

缺点(源自Django坚持自己造所有的轮子,整个系统相对封闭)

l  系统紧耦合,如果你觉得Django内置的某项功能不是很好,想用喜欢的第三方库来代替是很难的,比如下面将要说的ORMTemplate。要在Django里用SQLAlchemyMako几乎是不可能,即使打了一些补丁用上了也会让你觉得非常非常别扭。

l  Django自带的ORM远不如SQLAlchemy强大,除了在Django这一亩三分地,SQLAlchemyPython世界里事实上的ORM标准,其它框架都支持SQLAlchemy了,唯独Django仍然坚持自己的那一套。Django的开发人员对SQLAlchemy的支持也是有过讨论和尝试的,不过最终还是放弃了,估计是代价太高且跟Django其它的模块很难合到一块。

l  Template功能比较弱,不能插入Python代码,要写复杂一点的逻辑需要另外用Python实现TagFilter

l  URL配置虽然强大,但全部要手写,这一点跟RailsConventionover configuration的理念完全相左,高手和初识Django的人配出来的URL会有很大差异。

l  让人纠结的auth模块,Djangoauth跟其它模块结合紧密,功能也挺强的,就是做的有点过了,用户的数据库schema都给你定好了,这样问题就来了,比如很多网站要求email地址唯一,可schema里这个字段的值不是唯一的,纠结是必须的了。

l  Python文件做配置文件,而不是更常见的inixmlyaml等形式。这本身不是什么问题,可是因为理论上来说settings的值是能够动态的改变的(虽然大家不会这么干),但这不是最佳实践的体现。

Django大包大揽,用它来快速开发一些Web运用是很不错的。如果你顺着Django的设计哲学来,你会觉得Django很好用,越用越爽;相反,你如果不能融入或接受Django的设计哲学,你用Django一定会很痛苦,趁早放弃的好。

组件

Django框架的核心包括:一个 面向对象 的映射器,用作数据模型(以Python的形式定义)和关联性数据库间的媒介;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;以及一个模板系统。

核心框架中还包括:

l 一个轻量级的、独立的Web服务器,用于开发和测试。

l 一个表单序列化及验证系统,用于HTML表单和适于数据库存储的数据之间的转换。

l 一个缓存框架,并有几种缓存方式可供选择。

中间件支持,允许对请求处理的各个阶段进行干涉。

l 内置的分发系统允许应用程序中的组件采用预定义的信号进行相互间的通信。

l 一个序列化系统,能够生成或读取采用XMLJSON表示的Django模型实例。

l 一个用于扩展模板引擎的能力的系统。

This is a django blog

Django简易博客,主要实现了以下功能

  1. 连接数据库
  2. 创建超级用户与后台管理
  3. 利用django-admin-bootstrap美化界面
  4. template,view与动态URL
  5. 多说评论功能
  6. Markdown与代码高亮
  7. 归档,AboutME和标签分类
  8. 搜索与ReadMore
  9. RSS与分页

需要添加的安装包

  • pip install PyMySQL
  • pip install bootstrap-admin
  • pip install markdown
要注意的一些问题
  • 模板的位置
    由于django的版本与系统等原因,template的位置写法有些不同,摸索出了一个有用的写法
TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATE_PATH],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.static',
                'django.template.context_processors.tz',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.request'
            ],
        },
    },
]                                                                                                                        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个用于快速开发Web应用程序的Python Web框架。而python-docx-template是一个Python库,它可以使用Word文档作为模板,然后根据传入的数据批量生成Word文档。在Django中,我们可以利用python-docx-template库来实现批量生成Word文档的功能。 首先,我们需要在Django项目中安装python-docx-template库。可以使用pip命令来安装该库: ```bash pip install python-docx-template ``` 接下来,我们可以在Django项目中创建一个视图函数,用于接收数据并根据模板生成Word文档。在视图函数中,我们可以使用python-docx-template库提供的方法将数据填充到Word模板中,生成最终的Word文档。 例如,假设我们有一个Word文档模板`template.docx`,里面包含了一些需要填充数据的位置,我们可以在Django中这样写视图函数: ```python from docxtpl import DocxTemplate from django.http import HttpResponse def generate_word_document(request): # 从请求中获取数据 data = request.GET.get('data', '') # 读取Word模板 doc = DocxTemplate("template.docx") # 根据数据填充模板 context = {'data': data} doc.render(context) # 写入生成的Word文档 doc.save("generated_document.docx") # 返回生成的Word文档给用户 with open("generated_document.docx", 'rb') as f: response = HttpResponse(f.read(), content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document') response['Content-Disposition'] = 'attachment; filename=generated_document.docx' return response ``` 通过上述视图函数,我们可以在Django项目中实现批量生成Word文档的功能,用户可以通过传入数据来生成他们所需的Word文档。这样我们就可以方便地利用Python和Django来批量生成Word文档,提高生产效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值