1. django安装: django解压后目录下有一个setup.py文件,在命令行运行python setup.py install,当前前提是已经安装了python才能执行命令,然后用下面命令检查django是否安装成功:

    import django
    print(django.get_version())
  2. 创建project: 在命令行进入一个想用来存放project code的目录,然后运行命令:

    #django-admin.py的路径如果不在环境变量中,则要打上全路径
    django-admin.py startproject mysite

    创建的project目录结构如下:

    mysite/ #工程根目录,可以重命名
    manage.py #命令行工具,用于与django project交互,是对django-admin.py的轻封装,每个django
    # projec都会自动创建它
    mysite/
    __init__.py #告诉Python mysite是一个package
    settings.py #配置django project
    urls.py #django project中的url
    wsgi.py #python web server gateway interface,python定义的web服务器与web服务程序或框架通信接口
  3. database setup: 打开settings.py文件,找到Databases变量,默认使用的是python自带的sqlite db

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }

    如果使用的是其他数据库,则需要安装相应的数据库包,配置项也要指定一些额外的配置如USER,PASSWORD,HOST等,并且db要在数据库中创建好,如:

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'db name',
    'USER': 'mydatabaseuser',
    'PASSWORD': 'mypassword',
    'HOST': '127.0.0.1',
    'PORT': '',
    }
    }

    如果要使用manage.py自动为model创建表,django必须在数据库中有相应的权限

  4. settings.py中的TIME_ZONE用于设置时区,INSTALL_APPS表示当前project中激活的django app,哪些模块不需要刻意去掉,有部分模块需要使用数据库表,所以在使用它们前要先调用manage.py migrate命令创建必要的数据库表。INSTALL_APPS默认包括如下模块:

    • django.contrib.admin:the admin site

    • django.contrib.auth:an authentication system

    • django.contrib.contenttypes:a framework for content types

    • django.contrib.sessions:a session framework

    • django.contrib.messages:a messaging framework

    • django.contrib.staticfiles:a framework for managing static files

  5. Python自带了一个development web server,只能用于开发,不能用于生产环境,使用manage.py runserver [port | ip:port]命令启动.development web server每次请求都会重新调用Python code,所以改动python code不需要重启web server,但添加文件需要重启server

  6. project和app的关系:

    • app是一个weba application,实现了某项功能,如log system,poll app等

    • project是一个web站点的一系列配置和apps的集合

    • 一个project可以包含多个apps,一个app可以属于多个project

  7. 创建modules:在project的目录下执行如下命令:

    manage.py startapp polls

    会创建一个文件夹polls,也可以在python安装目录下的其他目录创建文件夹,结构如下:

    polls/
    __init__.py
    admin.py
    migrations/
    __init__.py
    models.py
    tests.py
    views.py

    创建使用database的web app,第一步就是创建model,在models.py文件里添加继承自models.Model的类,

    #polls/models.py
    
    class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published') class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    然后通过配置settings.py的INSTALLED_APPS对象把polls app插入到django.这样django知道包含了polls app

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

    然后调用manage.py makemigrations polls命令告诉django更改了model(这种情况是添加了新model),要把改动存到migration,migration是存放model改动的磁盘文件,如polls/migrations/0001_initial.py,其内容是一个migration class.使用manage.py sqlmigrate polls 0001可以查看migration执行的sql 命令,只是查看命令并不执行命令。在数据库中创建model table需要执行manage.py migrate,该命令会对所有未执行migrate的migration执行migrate.django会在数据库中建一张django_migrations表跟踪哪些migrate了.总结更改model的三个步骤:

    • 在models.py中更改model

    • 运行manage.py makemigrations为更改创建migration

    • 运行manage.py migrate 数据库中应用更改

  8. 将models在数据库中创建后,可以在命令行里操作这些model.启动命令行要使用manage.py shell而不是用python命令,因为manage.py shell会设置环境变量DJANGO_SETTINGS_MODULE=mysite.settings.py.

    import os
    print(os.environ['DJANGO_SETTINGS_MODULE'])
    #mysite.settings

    之后可以在命令行里操作model,model的改动也可以通过save()函数保存到数据库中

Django(1.7 part1)的更多相关文章

  1. 实战Django:官方实例Part1

    [写在前面] 撰写这个实战系列的Django文章,是很久之前就有的想法,问题是手头实例太少,一旦开讲,恐有"无米下锅"之忧. 随着对Django学习的深入,渐渐有了些心得,把这些心 ...

  2. django入门-初窥门径-part1

    尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6510917.html 完全翻译自官方文档 https://docs.djangoproje ...

  3. django with mysql (part-1)

    step01: django-admin.py startproject dj01 step02: cd dj01 tree step03: python manage.py runserver Th ...

  4. 实战Django:简易博客Part1

    舍得学习新技能的时候,通常不喜欢傻读书--捧着一本阐述该项技能的书籍,然后傻看,一路看下来,脑子里塞满了新的概念.知识点,头是越来越大,但技能却几乎没掌握半分. 多年来,舍得养成了用做实例来学习新技能 ...

  5. “全能”选手—Django 1.10文档中文版Part1

    本文是博主翻译的Django1.10版本官方文档的第一部分,如时间充裕,争取一直翻译下去,经验不足,或有错漏,敬请指正. 另外对于公开文档进行翻译的版权问题不是很清楚,如有侵权请联系我! 另外,要转载 ...

  6. Django 1.10中文文档—第一个Django应用Part1

    在本教程中,我们将引导您完成一个投票应用程序的创建,它包含下面两部分: 一个可以进行投票和查看结果的公开站点: 一个可以进行增删改查的后台admin管理界面: 我们假设你已经安装了Django.您可以 ...

  7. day 61 Django part-1 django的安装,以及初学者三件套(以及settings中的mysql配置)

    我们的django到底是什么东西呢? 我们的代码都是在后台写的,包括我们的pycharm都是属于后台的工具,但是我们的后端开发说到底是需要开发完了之后拿到用户面前的,让我们的用户看到我们的东西,首先要 ...

  8. Django 1.10文档中文版Part1

    目录 第一章.Django1.10文档组成结构1.1 获取帮助1.2 文档的组织形式1.3 第一步1.4 模型层1.5 视图层1.6 模板层1.7 表单1.8 开发流程1.9 admin站点1.10 ...

  9. Django——如何在Django模板中注入全局变量?——part1

    问题:TEMPLATE_CONTEXT_PROCESSORS代表着什么? 问题描述:无法在项目的settings.py文件中找到TEMPLATE_CONTEXT_PROCESSORS. ——————— ...

随机推荐

  1. 使用sed -i对文本字符串进行增删改查

    sed是一个很好的文件处理工具,本身是一个管道命令,主要以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作.1. sed命令行格式sed [选项] [命令] 1.1 选项-n,使用安 ...

  2. 11. Container With Most Water[M]盛最多水的容器

    题目 Given \(n\) non-negative integers \(a_1,a_2,\cdots,a_n\), where each represents a point at coordi ...

  3. Maven 学习笔记(一)

    定义 Maven 是基于项目对象模型(POM)的软件项目管理工具,它采用纯 java 编写,用于管理项目的构建,最早在 Jakata Turbine 项目中开始被使用.它包含了一个项目对象模型(Pro ...

  4. Ubuntu 14.04安装Skype

    Skype 4.3版本在14.04 LTS工作正常.安装步骤: $ sudo apt-get remove skype skype-bin:i386 skype:i386 $ sudo apt-get ...

  5. WebApi在MVC 4中一个Controll多个post方法报错处理

    http://blog.csdn.net/lqh4188/article/details/53542400(原创)

  6. Tarjan 求图点强联通,桥的应用

    在图中求双联通和强联通分量是我们解决非树结构的图连通问题的利器 通过求求图的双联通和强联通分量能把图转化成DAG进行求解: 行走 Description 给出一个有向图,你可以选择从任意点出发走到任意 ...

  7. <改变imageView的颜色和状态栏>

    1. import android.content.Context; import android.content.res.TypedArray; import android.support.ann ...

  8. python包管理(distutils、easy_install、pip、setup.py/requirements.txt、wheel)

    distutils.distutils2 distutils是 python 标准库的一部分,2000年发布.使用它能够进行 python 模块的 安装 和 发布. distutils2 被设计为 d ...

  9. Unity坐标系 左手坐标系 图

    x轴:从左指向右 y轴:从下指向上 z轴:指向屏幕里的是左手坐标系,指向屏幕外的是右手坐标系 记忆小技巧:都是X轴朝右,Y轴向上,跟平时画坐标一模一样,区别只是Z的朝向.你用手试一下就知道了,当大拇指 ...

  10. XMind双十一会放什么大招?

    XMind一直是一款备受欢迎的思维导图软件,同时也是一款开源思维导图软件,以强大的免费功能为支持,向用户提供极致的使用体验.XMind现在分别有XMind免费版(XMind Free),XMind专业 ...