python+django实践(二)

翻了下最近写的博文,发现就是python+django的阅读量排名高,于是推出第二期,本文主要针对后端程序。

django采用MVC(model,view,controller)架构。模型,试图,控制分开,有利于扩展和逻辑思考。   

建议Ubuntu下eclipse开发,安装一个PDT插件,用python2.7进行编译,可以建立django工程,如website,然后建立应用web。

在web文件夹下建立文件夹templates,用来存放html文件,django可以自动找到。静态文件(css文件,js文件,图片等)放在哪里呢?网上一般都传也是放在web文件夹下的子文件夹里,我在本地开发的时候,也是这么干的,还是可以找到的,等到我搬到阿里云服务器的时候,发现有问题,静态文件尤其是图片时常找不到,通过浏览器右击“检查”命令可以看出。于是我调整他们的位置,将其放在website文件夹下,即与web同一深度时,更改一下apache2服务器的配置即可找到。

models.py

class News(models.Model):
    news_occur_date = models.DateField()
    news_caption = models.CharField(max_length = 200)
    news_photo = models.ImageField(upload_to = 'news')
    news_content = models.TextField()
    news_pub_date = models.DateField()
    def __str__(self):
        return self.news_caption
在数据库中建立一张名为News的表,表内有五行,分别是news_occur_date(发生时间),news_caption(标题),news_photo(图片),news_content(内容),news_pub_date(发布时间)。实际上,该类继承了models.Model类,因此我们可以应用不同的field来实现对数据表的控制。关于field的用法,请参考 django field

这里重点强调几个问题:1 ImageField,是关于图片的,它实际上在数据库里存放的是图片的位置信息,真正的图片是作为一个文件存放在服务器上的。图片处理需要调用PIL或者Pillow库,这个地方会报错,建议安装环境的时候,记得pip安装一下。

2 TextField存储进数据库,空格和换行信息虽然不至于丢失,但是前端调用时会出问题,前端要用filter处理一下。

    3 def __str__(self) 相当于java里面的toString()方法,在这里的用途是作为后台的一个标记。

class NewsAdmin(admin.ModelAdmin):
    list_display = ('news_occur_date','news_caption','news_pub_date')
看到admin.ModelAdmin,就可知道此类是后台对表的管理,列出的对象即是后台显示的效果。 list_display 貌似必须由一个元组或者字典赋值。

admin.py

admin.site.register(News, NewsAdmin)
需要注册一下。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Django是一个开源的Web应用框架,使用Python语言开发。它简化了Web应用开发的过程,提供了许多便捷的功能和模块,使得开发人员能够更快速、高效地开发出符合需求的Web应用。 从入门到实践,学习Django开发需要掌握以下几个方面: 1. 环境搭建:首先需要安装PythonDjango的开发环境。可以通过pip命令安装Django,并搭建一个虚拟环境来管理项目。 2. 项目创建:使用Django的命令行工具创建一个新的Django项目。这将生成项目的基本结构和文件,包括配置文件和应用程序。 3. 数据库配置:在Django中使用数据库,需要在配置文件中设置数据库连接信息。可以选择常用的关系型数据库,如MySQL或SQLite。 4. URL配置:Django使用URL映射来处理用户的请求。在项目的URL配置文件中,将URL和对应的处理视图函数进行绑定。 5. 视图函数:Django的视图函数负责处理请求,并返回相应的响应。可以在视图函数中编写逻辑代码和业务逻辑。 6. 模板引擎:Django内置了强大的模板引擎,用于生成动态的HTML页面。可以在模板中使用Django提供的模板语法,包括变量、标签和过滤器等。 7. 表单处理:Django提供了方便的表单处理功能,可以用于处理用户输入的数据。可以根据需求创建自定义的表单类,并进行表单验证和处理。 8. 中间件:Django的中间件是位于请求和响应之间的处理组件,可以在请求处理过程中进行一些自定义操作,如身份验证、请求记录和缓存等。 9. 数据库操作:Django提供了ORM(对象关系映射)工具,可以通过Python代码进行数据库操作,而不用直接编写SQL语句。 10. 部署上线:当开发完成后,需要将项目部署到生产环境中。可以选择合适的服务器和Web服务器,如Nginx和Apache,进行部署和配置。 通过学习以上内容,我们可以掌握Django的开发流程和常用模块的使用。通过实际的项目开发,可以深入理解Django的各个方面,并逐渐掌握高级的开发技术和扩展功能。 ### 回答2: Django是一个开源的Web应用框架,使用Python语言编写。它通过提供一组强大的工具和接口,帮助开发者快速构建高效、可扩展的Web应用程序。 从入门到实践,首先我们需要掌握Python语言的基础知识,了解Python的语法和常用库函数等。接着,我们可以开始学习Django框架的使用。 在学习过程中,我们需要熟悉Django的核心概念和组件,例如模型(Model)、视图(View)和模板(Template)等。模型用于定义数据结构,视图处理用户请求并返回响应,模板用于渲染动态页面。掌握这些基本概念后,我们可以开始进行实践实践中,我们可以开发一个典型的Web应用,如博客网站。首先,我们需要定义博客的数据结构,例如文章、作者和评论等。然后,我们可以创建相应的模型,并通过Django提供的数据库迁移工具生成数据库表格。 接着,我们可以编写视图函数来处理用户请求。例如,当用户访问博客首页时,我们可以查询数据库获取最新的文章列表,并通过模板渲染页面后返回给用户。当用户点击某篇文章时,我们可以根据文章的ID查询数据库,获取文章的详细内容并显示在页面上。 在开发过程中,我们可能还需要创建用户注册、登录和退出等功能。这时,我们可以使用Django提供的用户认证和管理模块,轻松实现这些功能。 最后,我们还可以通过Django的后台管理功能方便地管理数据。Django提供了一个自动生成的管理界面,我们可以通过简单的配置即可实现对数据的增删改查操作,而无需编写额外的代码。 总之,通过从入门到实践的学习和实践,我们可以掌握Django的开发技巧和典型模块的使用,从而能够快速开发出高效、可扩展的Python Django Web应用程序。 ### 回答3: Django是一个开放源代码的Python Web应用程序框架,它通过提供一个简单方便的开发环境,帮助开发人员快速构建高质量的Web应用程序。 从入门到实践,首先需要掌握一些基本的Python编程知识。Python具有简单易学的语法和丰富的标准库,对于初学者来说,上手较为容易。接下来,了解Django框架的设计理念和基本概念是必不可少的。Django采用了MVC(模型-视图-控制器)的架构模式,其中模型负责数据处理和存储,视图负责处理用户请求和渲染HTML模板,控制器负责协调模型和视图之间的交互。 在开发过程中,使用Django提供的典型模块是非常常见的。其中最重要的模块之一是ORM(对象关系映射),它能够将数据库中的数据映射为Python对象,并提供了一种直观的方式来操作数据库。ORM能够简化数据库操作,并提供了一致的API,使得开发更加高效和可维护。另外,Django的表单模块也是非常重要的,它能够帮助我们在Web应用程序中处理用户输入,并进行验证和数据清洗。表单模块提供了丰富的字段类型和验证器,使得表单开发更加简单和高效。 除了ORM和表单模块,Django还提供了许多其他有用的模块,例如身份认证和授权模块、缓存模块、国际化和本地化模块等等。这些模块能够帮助我们快速构建功能强大的Web应用程序。 在实践中,我们可以通过参考Django官方文档、教程和案例来学习开发技巧和最佳实践。同时,参与开源项目和与其他开发者交流也是非常重要的,可以提升自己的开发能力和不断学习新技术。 总之,通过学习Python编程基础、掌握Django框架的基本概念和典型模块,以及不断实践和参与开发社区,我们可以逐步提升自己的Django开发技能,从而构建出高质量的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值