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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值