创建项目

 django-admin.py startproject mysite

1. 目录结构

mysite/ #项目的名称manage.py #可通过命令和项目进行交互的文件mysite/ #项目的实际文件夹__init__.py #空文件,告诉python这个目录是个python包settings.py #该项目的配置文件urls.py #项目的URL声明,dispatch文件wsgi.py #项目wscgi的一个入口

2. 启动开发机

只用于开发环境,不能用于生产环境!
开发环境支持热启动

python manage.py runserver #default 8000
#如果主机想访问虚拟机需要指定IP和端口
python manage.py runserver 0.0.0.0:8000

3. 数据库

需求MySQLdb

pip2.7 install mysql-python -i http://pypi.douban.com/simple

settings.py文件中进行设置

#mysql的数据库必须提前建好
DATABASES = {'default': {
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'django.db.backends.mysql','NAME': 'test','USER': 'root','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '3306',}
}
#修改时区
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
#默认apps
INSTALLED_APPS = ('django.contrib.admin', #管理页面'django.contrib.auth', #权限系统'django.contrib.contenttypes', #内容框架'django.contrib.sessions', #回话框架'django.contrib.messages', #消息框架'django.contrib.staticfiles', #管理静态内容框架
)
#此命令会安装上述的app,并生成对应的表,在此建立系统管理员帐号和密码
python manage.py syncdb

创建模型

app完成某个特定的功能,诸如微博系统,公共记录数据库亦或是一个简单的投票程序。
project是若干配置文件与许多app组成的特殊网站。
project可以包含很多app,app也可用于多个project。

python manage.py startapp polls

这会生成

polls/__init__.pyadmin.pymodels.pytests.pyviews.py

首先应该定义模型。
模型是关于数据的独立、限定的资源。它包括要存储的数据的必要的字段和行为。
Django遵循DRY原则,即Don't repeat youself——每一个独立的概念或数据都存储在一个地方,并且存储一份。
定义所有的模型,关于投票,创建投票和选择两个模型,投票包括一个问题和一个发起日期,选择包括选择的内容和投票计数。每一个选择应该关联一个投票。

    from django.db import modelsclass 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)

每个模型对应一个类,每个类继承自models.Model,每个类对应一张表。
每个类成员对应该表的列,并且有自己的类型。有些参数是必须的例如max_length,它不只是数据库的模式,还包括页面的验证。而整数类型的默认值是可选的。
最后类之间的关系用外键来描述。该处需要注意的是,poll会自动处理为poll_id加到

激活模型

首先应该在settings.py中添加该应用。

INSTALL_APPS = (......'polls',
)

然后键入命令,观察models生成的SQL语句。

python manage.py sql polls

这里有一些额外的命令可以观察实际的构成。

python manage.py validate #检查错误,尤其是构建apps的model后检查,再运行syncdb之前
python manage.py sqlcustom polls #输出应用定义的custom sql statement
python manage.py sqlclear polls #输出应用中有必要DROP TABLE的语句
python manage.py sqlindexes polls
python manage.py sqlall polls #输出sql sqlcustom sqlindexes的集合

然后要实际运行这些语句,在数据库中实际建立他们。该语句只用于初次创建时

python manage.py syncdb

调用API来工作

#进入互动界面
python manage.py shell
>>> from polls.models import Poll, Choice
#显示所有实例
>>> Poll.objects.all()
[]
>>> from django.utils import timezone
#创建一个对象
>>> p = Poll(question="What's new?", pub_date=timezone.now())
#存入数据库
>>> p.save()
#可使用p.question等修改,查看类成员函数,修改后再次save即可
>>> Poll.objects.all()
[<Poll: Poll object>] #这是由于__unicode__没有设置的结果,
class Poll(models.Model):# ...def __unicode__(self):  # Python 3: def __str__(self):return self.question
#这样即可输出
>>> Poll.objects.all()
[<Poll: What's new?>]
#查找数据库,filter(类成员名称后双下划线,可以加入各种比较)
#get可直接用来查找,其中pk可用来查找主键,PrivateKey
>>> Poll.objects.filter(question__startswith='What')
[<Poll: What's up?>]
>>> current_year = timezone.now().year
>>> Poll.objects.get(pub_date__year=current_year)
<Poll: What's up?>

因为Poll是Choice的外键,所以Poll有如下的成员函数

>>> p.choice_set.all()
[]
>>> c = p.choice_set.create(choice_text='Just hacking again', votes=0)
>>> p.choice_set.all()
[<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]
>>> p.choice_set.count()
3
# Choice也有如下的成员变量
>>> c.poll
<Poll: What's up?>
#删除某个记录
>>> c = p.choice_set.filter(choice_text__startswith='Just hacking')
>>> c.delete()

转载于:https://www.cnblogs.com/solontan/p/3570819.html

Django初级手册1-项目和应用的创建与简单的数据库操作相关推荐

  1. 创建Django项目和模型(创建工程、子应用、设置pycharm环境、使用Django进行数据库开发的步骤)

    1.创建Django项目 文档:Writing your first Django app, part 1 | Django documentation | Django 步骤 创建Django项目 ...

  2. python电商项目源码_Python Django(WEB电商项目构建)

    (坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,模板T和视图V组成. 安装Pyth ...

  3. Django+Linux+Uwsgi+Nginx项目部署文档

    Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...

  4. django,项目,app,静态文件02,数据库

    Django 02  复习:   Django下载:    在命令行输入:     pip3 install django==1.11.11     在这里不要用最新的3.7,推荐使用3.6/3.5/ ...

  5. Django学习(一)---基本配置及创建项目、应用

    安装:在Django官网下载最新版Django然后通过pip安装即可 一.创建项目 进入文件夹,打开cmd窗口,输入django-admin startproject myblog(项目名) 二.创建 ...

  6. Django电商网站项目(7)-部署与总结

    将前述4个模块完成后项目的全部功能就完成了,在本地已经可以实现网站的基本功能(从用户注册到订单评论),但开启服务器时使用的是Django自带的测试用服务器,因此仍需要将其部署到真正的可用于工程的服务器 ...

  7. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作

    Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...

  8. Django项目实践3 - Django模型(字段、数据库操作及模型继承)

    http://blog.csdn.net/pipisorry/article/details/45725953 Django数据库字段类型(Field types) AutoField class A ...

  9. 视频教程-Python+Vue+Django前后端分离项目实战-Python

    Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  10. 很棒的 Django 应用程序、项目和资源的精选表单

    目录 管理界面 分析 资产管理 验证 授权 博客管理 样板 缓存 兼容性 客户关系管理 仪表盘 数据科学 数据库 调试 电子邮件 字段 文件传输 形式 地理信息系统 图像处理 进出口 迁移 移动支持 ...

最新文章

  1. java super()方法_Java super关键字的使用方法详解
  2. ubuntu 14.04 no valid active connections found
  3. 苦酒入喉心作痛,红酒入鹅鹅想哭——震惊!勒索病毒想哭靠wine感染了Ubuntu16.04...
  4. POJ3069:Saruman's Army
  5. python execute_command err_Python management.execute_from_command_line方法代碼示例
  6. mac中如何从vim文本编辑器退回到命令
  7. 7.override a layout
  8. html页面分页显示问题,HTML分页,显示分页页面内容
  9. UnityAction和System.Action引发的思考
  10. 基于python的客流统计_基于深度学习的客流量统计方法
  11. Ceres Solver (ubuntu 安装)
  12. nil pointer evaluating interface {}.replicaCount
  13. 农业统计分析系列2-试验设计
  14. Spark性能优化之-资源调优
  15. Jquery——将页面定位到某个具体位置
  16. windows安装软件出现“command line option syntax error”错误
  17. Thinkphp框架的源码通读1
  18. openjudge 1.3.10 计算并联电阻的阻值
  19. 盘点6个主流的数据分析工具,及优缺点对比
  20. Springboot实现图书馆座位预约管理系统之自习室预约占座系统源码

热门文章

  1. 「leetcode」104559:求树的最大深度
  2. poj 2392 Space Elevator 二进制拆包多重背包
  3. 苹果macfcpx视频剪辑软件:Final Cut Pro X
  4. 苹果mac好用的记事本软件:Ulysses 24
  5. indesign使用教程,如何编辑段落样式?
  6. 苹果Mac文件自动化整理工具:Hazel
  7. Java第十二次作业:什么是一维数组?什么是对象数组?吃金币游戏2.0版 新增炸弹功能 新增游戏倒计时功能 新增胜利失败检测功能 使用如鹏游戏引擎制作窗体 一维数组设置金币...
  8. 中国第一个正式商用SD-WAN项目面世
  9. 单线程与线程池的性能对比
  10. Wordpress 错误ERROR: Cookies are blocked or not supported by your browser.