Python

Django part5:优化博客列表

上一节末尾我已经起了个小头了,这一节让我们来看看是否可以指定列表中显示特定的字段呢?

现在的博客列表模样:
E044B8C2-72A6-40B7-81B1-95214817EE9A
太sui了有木有?连博客的title都没有显示,最起码得有个title吧~让我们来解救它吧!Do It!!

修改blog/admin.py,修改成如下模样

from django.contrib import admin
from .models import Blog

class BlogAdmin(admin.ModelAdmin):
    list_display = ('blog_title', 'blog_content', 'create_time')
    list_filter = ['blog_title']
    search_fields = ['blog_title']
    fieldsets = [
        ('title', {'fields': ['blog_title']}),
        ('content', {'fields': ['blog_content']}),
        ('time', {'fields': ['create_time']}),
    ]

admin.site.register(Blog, 

Django part4:指定表单的字段和修改表单样式

上一节我们基于Django为我们提供的神奇功能非常简单地实现了blog系统的增删改查功能,但好像有些东西并不能完全让我们满意,下面我们拿博客的提交表单来进行优化!
41F146AC-3E7D-47A1-BDD5-F7504271020E

现有问题:
1.Admin Uid好像用不着显示出来
2.Hits Count好像也用不着显示出来
解决方案:
好在Django框架实在太强大,我们可以通过修改简短的代码来指定某些字段显示还可以指定表头,让我们来看看这功能的强大。

Python Django入门系列教程

说在最前面的话
做Web开发这些年,从没有用过Python来做服务端程序。所以,今儿个就用Python来做一个Web开发的入门。由于之前已经有过Web开发的经验了,所以就直接上手了Python的Django框架。
为什么要写这门教程?
好记性不如烂笔头,听过见过读过一些东西总喜欢记录在博客里面,所以就在学习的过程中兼顾着记录了这一系列教程,文中所有的内容都参考自Django官方文档。

目录
Django part1:django基础环境搭建
Django part2:mysql的配置及博客系统的起步
Django part3:为博客增加数据表及增删改查
Django part4:指定表单的字段和修改表单样式
Django part5:优化博客列表

Django part3:为博客增加数据表及增删改查

上一节我们已经生成了blog应用的基础框架,但我们的数据表好像还没有设计呢?为我们的博客增加增删改查功能,所以这一节就主要解决这两个问题。

创建数据表
哎,千万别打开Mysql,还记得上一节中提到过的数据库迁移吗?我们用这个来创建我们的数据表
1.打开blog/models.py,编辑成如下模样
[cc lang=”python” theme=”twitlight” width=”100%” height=”700″ lines=”40″ noborder=”true”]
from django.db import models
# Create your models here.
class Blog(models.Model):
blog_title = models.CharField(max_length=200)
blog_content = models.TextField()
admin_uid = models.IntegerField(default=0)
create_time = models.DateTimeField()
[/cc]
在这里我们将新建一张存储博客的表,字段有blog_title:博客标题,blog_content:博客内容,admin_uid:作者,create_time:创建时间

2.生成数据库迁移的初始化文件和相应的SQL语句
[cc lang=”python” theme=”twitlight”

Django part2:mysql的配置及博客系统的起步

上一节我们已经完成了Python Django基础框架的安装和简单运行,这一节主要让我们探讨下Django的常用配置以及创建Model等基础知识。

首先,打开settings.py文件,发现里面这些配置也太多了,有点难以下手,不过我们也不会依次去解释这些配置项,我们会以走一个项目的方式去学习这些配置项。

1.TIME_ZONE
配置项:时区
配置值:’Asia/Shanghai’
说明:既然在中国,那就设置成这样吧。

2.DEBUG
配置项:调试模式
配置值:True
说明:在开发环境设置为True,在真正的生产环境就千万不要设置成True了。

3.DATABASES
上一节中,我们把这里注释掉了,现在我们来搞搞这里,我这里使用的数据库是Mysql,好,新建一个数据库并命名为python
配置项:数据库配置信息Django官方Database配置
配置值:
注意下面要填写你的数据库用户名、密码、host和端口号

DATABASES = {
   'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'python',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
   }
}

打开终端,在我们上一节建立的firstpysite目录下,执行命令,看看我们配置成功了没有

python manage.py runserver 

Python操作Mysql

最近在搞Python,所以今晚打算使用Python对Mysql来一发,所以走起吧。

Python连接Mysql的方式有很多种,但由于我是一个纯小白不知道其他方式,只知道有个mysqlDB模块可以实现我想要的功能,所以走起吧。
然后说下,我使用的是CentOS6.4,已安装好Python2.6.6以及Mysql5.6。

373BE339-C71D-4329-B20B-958F8C15EA4B

如上图所示,我的Python和Mysql已经安装好,但是如何实现两者的互通,就需要MySQLdb模块的支持,所以接下来的任务就是把MySQLdb安装完成。

准备工作
首先在mysql中创建一个名字叫test的数据库,并在test数据库中创建一个表,建表语句如下

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

安装MySQLdb
1.到此处https://pypi.python.org/pypi/MySQL-python/下载最新版本的MySQLdb,我下载的是MySQL-python-1.2.5.zip
2.下载完后,解压安装包,执行 unzip MySQL-python-1.2.5.zip,然后进入解压后的目录,打开site.cfg文件,将 mysql_config = /usr/local/mysql/bin/mysql_config这一行前面的#去掉,并将后面的路径换成你的mysql_config目录(可以执行 find / -name