Django笔记

开发用服务器

让我们来验证是否工作。从外层 mysite 目录切换进去,若准备好了就运行命令 ``python manage.py runserver``。你将会看到命令行输出如下内容:

Validating models...

0 errors found
December 02, 2013 - 15:50:53
Django version 1.5, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

你已经启动了 Django 开发服务器,一个纯粹的由 Python 编写的轻量级 Web 服务器。我们在 Django 内包含了这个服务器,这样你就可以迅速开发了,在产品投入使用之前不必去配置一台生产环境下的服务器 – 例如 Apache 。

现在是一个很好的提示时机:**不要** 在任何类似生产环境中使用此服务器。它仅适用于开发环境。(我们提供的是 Web 框架的业务,而不是 Web 服务器。)

现在服务器正在运行中,请在你的 Web 浏览器中访问 http://127.0.0.1:8000/ 。 你会看到一个令人愉悦的,柔和的淡蓝色 “Welcome to Django” 页面。它工作正常!

更改端口号

默认情况下,:djadmin:runserver 命令启动的开发服务器只监听本地 IP 的 8000 端口。

如果你想改变服务器的端口,把它作为一个命令行参数传递即可。例如以下命令启动的服务器将监听 8080 端口:

python manage.py runserver 8080

如果你想改变服务器 IP ,把它和端口号一起传递即可。因此,要监听所有公共 IP 地址(如果你想在其他电脑上炫耀你的工作),请使用:

python manage.py runserver 0.0.0.0:8000

有关开发服务器的完整文档可以在 runserver 内参考。

 

 

 

-----------------------------------------------------

数据库设置

现在,编辑 mysite/settings.py 。 这是一个普通的 Python 模块,包含了代表 Django 设置的模块级变量。 更改DATABASES 中 'default' 下的以下键的值,以匹配您的数据库连接设置。

  • ENGINE – 从 'django.db.backends.postgresql_psycopg2''django.db.backends.mysql','django.db.backends.sqlite3''django.db.backends.oracle' 中选一个, 至于其他请查看 also available.

  • NAME – 你的数据库名。如果你使用 SQLite,该数据库将是你计算机上的一个文件;在这种情况下,:setting:NAME将是一个完整的绝对路径,而且还包含该文件的名称。如果该文件不存在,它会在第一次同步数据库时自动创建(见下文)。

    当指定路径时,总是使用正斜杠,即使是在 Windows 下(例如:``C:/homes/user/mysite/sqlite3.db``) 。

  • USER – 你的数据库用户名 ( SQLite 下不需要) 。

  • PASSWORD – 你的数据库密码 ( SQLite 下不需要) 。

  • HOST – 你的数据库主机地址。如果和你的数据库服务器是同一台物理机器,请将此处保留为空 (或者设置为127.0.0.1) ( SQLite 下不需要) 。查看 HOST 了解详细信息。

------------------------------------------------------------------------------------------------------------------------------------

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

代码很简单。每个模型都由继承自 django.db.models.Model 子类的类来描述。 每个模型都有一些类变量,每一个类变量都代表了一个数据库字段。

每个字段由一个 Field 的实例来表现 – 比如 CharField 表示字符类型的字段和 DateTimeField 表示日期时间型的字段。这会告诉 Django 每个字段都保存了什么类型的数据。

每一个 Field 实例的名字就是字段的名字(如: question 或者 pub_date ),其格式属于亲和机器式的。在你的 Python 的代码中会使用这个值,而你的数据库会将这个值作为表的列名。

你可以在初始化 Field 实例时使用第一个位置的可选参数来指定人类可读的名字。这在Django的内省部分中被使用到了,而且兼作文档的一部分来增强代码的可读性。若字段未提供该参数,Django 将使用符合机器习惯的名字。在本例中,我们仅定义了一个符合人类习惯的字段名 Poll.pub_date 。对于模型中的其他字段,机器名称就已经足够替代人类名称了。

一些 Field 实例是需要参数的。 例如 CharField 需要你指定 :attr:`~django.db.models.CharField.max_length`。这不仅适用于数据库结构,以后我们还会看到也用于数据验证中。

一个 Field 实例可以有不同的可选参数; 在本例中,我们将 votes 的 default 的值设为 0 。

最后,注意我们使用了 ForeignKey 定义了一个关联。它告诉 Django 每一个``Choice`` 关联一个 Poll 。 Django 支持常见数据库的所有关联:多对一( many-to-ones ),多对多( many-to-manys ) 和 一对一 ( one-to-ones )。

-------------------------------------------

原文地址:https://www.cnblogs.com/zzblee/p/4581625.html