码迷,mamicode.com
首页 > 编程语言 > 详细

Python之路Day16

时间:2016-05-08 18:11:58      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

主要内容:Django基础进阶之:Django 流程、Django URL、Django Views、Django Models、Django Template、Django Admin

Django 流程(图片来自大王):

技术分享

Django URL

url捕获到的参数总是字符串!!!

技术分享

总的urls.py文件:

通过include导入二级(app级)的urls.py处理url

技术分享

app01下的urls.py文件:

技术分享

 

Django Views

views主要进行逻辑处理,返回情形常见的有三种:

技术分享

1. HttpResponse

最简单的HttpResponse:

技术分享

HttpResponse只能返回字符串格式,必要时使用JSON进行转换。

技术分享

 

2. render

render返回的是一个html文件。

技术分享

可以使用模板,可以传入值对模板进行渲染。Django自带的模板渲染引擎比jinja2更强,在settings中可以设置使用什么模板引擎渲染。

技术分享

3. redirect

redirect返回的是一个跳转链接。

技术分享

 

Django Models

django 本身提供了非常强大易使用的ORM组件,并且支持多种数据库,如sqllite,mysql,progressSql,Oracle等。 

在settings.py里面配置数据库引擎(以最常用的mysql为例):

技术分享

因为mysqldb模块暂时还不支持Python3,所以先使用pymysql模块代替。

装好pymysql模块之后,需要在settings.py中设置一下:

技术分享

创建自己的models:

Python3中使用__str__()代替__unicode__(),返回字符串格式的对象,方便我们区分打印出来models对象。

verbose_name_plural:用于设置models在admin中显示的内容,如果写成verbose_name,则在Django admin就会在显示的表名后面自动加上s(英文中的复数的意思)。

技术分享

from django.db import models

# Create your models here.


class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=30)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    def __str__(self):
        return self.name

    class Meta:
        verbose_name_plural = "出版社"


class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

    def __str__(self):
        return "{} {}".format(self.first_name, self.last_name)

    class Meta:
        verbose_name_plural = "作者"


class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_Date = models.DateField()

    def __str__(self):
        return "《{}》".format(self.title)

    class Meta:
        verbose_name_plural = "书名"

接下来就是在数据库中创建表:

在Terminal下使用以下命令:

1. python manage.py makemigrations

技术分享

2. python manage.py migrate

技术分享 

Django Template

 

Django Admin

 

Python之路Day16

标签:

原文地址:http://www.cnblogs.com/liwenzhou/p/5471007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!