1.windows下安装
2.创建第一个django程序
3.链接数据库并创建数据表
Django 里更关注的是模型(Model)、模板(Template)和视图(Views),Django 也被称为 MTV 框架 。在 MTV 开发模式中:
M 代表模型(Model),即数据存取层。该层处理与数据相关的所有事务:如何存取、如何确认有效性、包含哪些行为以及数据之间的关系等。
T 代表模板(Template),即表现层。该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。
V 代表视图(View),即业务逻辑层。该层包含存取模型及调取恰当模板的相关逻辑。你可以把它看作模型与模板之间的桥梁。
models.py就是Django里面的建表所需的数据模型的描述:
命令: python manage.py init 初始化数据库 python manage.py sqlall [appname] 查看app的CREATE TABLE的语句,包括原始数据,创建索引等. python manage.py sqlreset [appname] 修改models,不保留以前数据,进行重置数据库,更新表。 python manage.py validate 用来排错 python manage.py syncdb 用来建表 python manage.py sql databasename 用来查看已创建数据库表结构
------------------我是分割线------------------
问题1解答:
1.在官网上下载.tar.gz包,解压之后放在和python同一级目录下。
2.进入到django目录下,执行python setup.py install,安装完成后发现D:\program files\Python27\Lib\site-packages\django存在,django就安装在该目录下
3.配置环境变量,在系统环境变量path中添加以下3项
D:\program files\Python27; D:\program files\Python27\Lib\site-packages\django D:\program files\Python27\Scripts
检查是否安装成功
D:\program files\Django-1.6.1>python Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.get_version() '1.6.1' >>> exit()
4.创建Django工程
进入Scripts目录,创建自己的工程mytest.进入myproject目录后,执行:manage.py runserver,来启动Django的自带Web服务器.默认端口号是8000
目录下有4个文件(很重要的4个文件):
__init__.py:表明该目录为一个python包
setting.py:项目设置文件
urls.py:URL映射管理
manage.py:对项目进行操作的命令
wsgi.py:Python Web Server Gateway Interface,是Python应用程序或框架和Web服务器之间的一种接口。
D:\program files\Python27>cd Scripts D:\program files\Python27\Scripts>django-admin.py startproject mytest D:\program files\Python27\Scripts>cd mytest D:\program files\Python27\Scripts\mytest>manage.py runserver Validating models... 0 errors found January 17, 2014 - 11:14:21 Django version 1.6.1, using settings 'mytest.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. [17/Jan/2014 11:15:07] "GET / HTTP/1.1" 200 1757 Validating models...
结束后输入127.0.0.1:8000,显示it works!说明成功
3.
数据库建表过程:
1.创建应用程序
python manage.py startapp appname
2.用python代码写models.py,创建数据模型
from django.db import models class Publisher(models.Model): name = models.CharField(maxlength=30) address = models.CharField(maxlength=50) city = models.CharField(maxlength=60) state_province = models.CharField(maxlength=30) country = models.CharField(maxlength=50) website = models.URLField()3.模型的安装
INSERT INTO book_publisher (name, address, city, state_province, country, website) VALUES ('Apress', '2855 Telegraph Ave.', 'Berkeley', 'CA', 'U.S.A.', 'http://www.apress.com/');更新数据:
UPDATE book_publisher SET name = 'NewName', address = '2855 Telegraph Ave.', city = 'Berkeley', state_province = 'CA', country = 'U.S.A.', website = 'http://www.apress.com' WHERE id = 52;选择对象:
SELECT id, name, address, city, state_province, country, website FROM book_publisher;数据过滤 :
Publisher.objects.filter(name="NewName") 相当于SQL语句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE name = 'NewName'; 缩小范围: Publisher.objects.filter(country="U.S.A.", state_province="CA") 相当于SQL语句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE country = 'U.S.A.' AND state_province = 'CA'; 模糊匹配: Publisher.objects.filter(name__contains="press")
在 name 和 contains 之间有双下划线。象Python自己一样,Django也使用 双下划线来做一些小魔法,这个 __contains 部分会被Django转换成 LIKE SQL语句:
SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE name LIKE '%press%';Publisher.objects.get(name="Apress Publishing")数据排序: Publisher.objects.order_by("name") 相当于SQL语句: SELECT id, name, address, city, state_province, country, website FROM book_publisher ORDER BY name; 可以支持多个字段排序: Publisher.objects.order_by("state_provice", "address") 也可以逆向排序: Publisher.objects.order_by("-name") 添加‘-’同时排序和过滤: Publisher.objects.filter(country="U.S.A.").order_by("-name") 相当于SQL语句: SELECT id, name, address, city, state_province, country, website FROM book_publisher WHERE country = 'U.S.A' ORDER BY name DESC; 限制返回数据: Publisher.objects.all()[Number] //Number可以换成想要显示的位置下标 相当于SQL语句: SELECT id, name, address, city, state_province, country, website FROM book_publisher ORDER BY name LIMIT 1; 删除对象:p = Publisher.objects.get(name="NewName") p.delete()
首先,在开发环境中执行下面的步骤(也就是说,不是在发布服务器上):
把这个字段添加到你的模型中.
运行 manage.py sqlall [yourapp] 会看到模型的新的 CREATE TABLE 语句。 注意新的字段的列定义。
启动您的数据库交互shell(也就是 psql 或 mysql , 或者您也可以使用 manage.py dbshell )。 执行一个 ALTER TABLE 语句,添加您的新列。SQL语句:(ALTER TABLE books_publisher ADD COLUMN test integer)
(可选)用 manage.py shell 启动Python交互式shell,并通过引入模型并选择表 验证新的字段已被正确添加。
ALTER TABLE books_book DROP COLUMN test;删除表:DROP TABLE books_book
参考
http://www.cnblogs.com/zhoujie/archive/2013/05/11/django1.html
http://www.admin10000.com/document/94.html