码迷,mamicode.com
首页 > 其他好文 > 详细

第一节:整体介绍

时间:2017-06-08 22:25:01      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:hang   沟通   types   lin   email   out   文件结构   static   settings   

  Python版本3.5.2,Django版本1.10

  创建一个Django工程,并且生成一个名字为mainsite的app

django-admin.py startproject myblog
python3 manage.py startapp mainsite

  文件结构如下:

x-power@xpower-CW65S:~/chen/myblog$ tree ./
./
├── mainsite
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── myblog
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-35.pyc
    │   └── settings.cpython-35.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

4 directories, 13 files

  介绍一下比较重要的几个文件的用途:

    manage.py    :    Django用于管理网站配置的文件,是一个接受命令行指令的工具集程序。

    setting.py      :    就像他的名字一样是用于对网站的配置进行设置的。(有些地方可能我的理解也不正确欢迎指正,批评!)

    urls.py           :    用来设置每一个URL 的网址要对应的函数以及对应的方式,通常是创建一个新的网页的时候首要编辑的文件。

    wsgi.py          :    是用于部署网站时候用的和主机中网页服务器的沟通接口(如Apache)。

  真正的网站运行逻辑都在我们创建的App里面(这里是mainsite),这个App也体现了Django的Reuse的概念。

  我们已经创建了App但是Dajngo还是不知道有这个App的,我们在setting.py中加入这个App。

INSTALLED_APPS = (
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    mainsite,
)

  然后修改最后的时区设置,默认时区是Django的诞生地,我们先让他倒时差,学习中文。

LANGUAGE_CODE = zh-CN

TIME_ZONE = Asia/Shanghai

  Django自带了一个数据库Sql.lite。是一个超小型数据库,一般情况下都会用其他数据库的。现在我们先用这个数据库。

  执行以下文件会看到生成了一个db.sqllite3的文件。

 1 x-power@xpower-CW65S:~/chen/myblog$ python3 manage.py migrate
 2 Operations to perform:
 3   Synchronize unmigrated apps: messages, staticfiles
 4   Apply all migrations: admin, auth, sessions, contenttypes
 5 Synchronizing apps without migrations:
 6   Creating tables...
 7     Running deferred SQL...
 8   Installing custom SQL...
 9 Running migrations:
10   Rendering model states... DONE
11   Applying contenttypes.0001_initial... OK
12   Applying auth.0001_initial... OK
13   Applying admin.0001_initial... OK
14   Applying contenttypes.0002_remove_content_type_name... OK
15   Applying auth.0002_alter_permission_name_max_length... OK
16   Applying auth.0003_alter_user_email_max_length... OK
17   Applying auth.0004_alter_user_username_opts... OK
18   Applying auth.0005_alter_user_last_login_null... OK
19   Applying auth.0006_require_contenttypes_0002... OK
20   Applying sessions.0001_initial... OK

  在默认的情况下Django的数据库是通过Model的方式去操作的(这也是我爱Django的一点。),也就是在程序中不会直接面对数据库和数据表,而是先创建好Model,然后通过对Model的操作达到操作数据库的目的。这样做日后可以很方便的更换数据库。(总感觉哪里有点不对,日后就换?)

使用数据库大概分为以下几步:

  1. 在models.py中定义需要使用的类(继承自models.Model)
  2. 详细的设置每一个类中的变量,即数据表的每一个字段
  3. 使用python3 manage.py makemigrations创建数据库和Django的中介文件。
  4. 使用python3 manage.py migrate 同步更新数据库的内容。
  5. 操作python定义的类就相当于操作数据库了。

如同my_blog这个名字的意思一样,在这里我们需要有一个储存博文的数据表。

  最初的时候models.py文件的内容就是这些。

from django.db import models

# Create your models here.

修改之后内容如下:

from django.db import models
from django.utils import timezone
# Create your models here.

class Post(models.Model):
    title = models.CharField(max_length = 200,verbose_name = 标题)
    slug = models.CharField(max_length = 200,verbose_name = 作者)
    body = models.TextField(verbose_name = 内容)
    pub_date = models.DateTimeField(default = timezone.now,verbose_name = 发表时间)
    
    class Meta:
        verbose_name="文章内容"                # 后台表的名称
        verbose_name_plural = "文章内容"
        ordering = [-pub_date]    # 排序
    
    def __str__(self):
        return self.title    # 在 Admin界面显示的内容

verbose_name 自己试一下应该可以知道是将原来的名字给换了一下,换成中文。

在设计好表之后,执行makemigrations和migrate操作,然后创建一个超级用户,

python3 manage.py createsuperuser

登陆进去添加五篇文章。

  

第一节:整体介绍

标签:hang   沟通   types   lin   email   out   文件结构   static   settings   

原文地址:http://www.cnblogs.com/A-FM/p/6964903.html

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