`
bee1314
  • 浏览: 164237 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Django起步

 
阅读更多

编写第一个Django的应用(第一部分)(官方tutorail)

我们先编写一个最基本的投票应用,包含两个部分:

    1. 一个公告的站点供用户查看投票的问题,和进行投票

    2. 一个管理员站点,我们可以添加,修改,删除投票

 

在开始之前,搭建开发环境:

    

pip install virtualenvwrapper
mkvirtualenv django-env
pip install django

 

 

1. 创建项目

使用django提供的创建项目的工具 自动生成django实例的一些代码,包括数据库的配置,django的细节的选项,已经应用的特定的设置。

 

django-admin.py startproject mysite

 

mysite:

    包含了我们的项目,你可以任意命名你喜欢的名字

manage.py:

    命令行的工具,让我们可以通过各种方式和django项目进行交互。

mysite:

    对于我们项目来说就是一个python的包, 如果你想使用内部的任何东西如果settings。可以这样, import mysite.setttings

__init__.py

    一个空文件告诉python,这个目标要被看作成一个包。

settings.py:

    python的配置文件

urls.py:

    对于django项目中URL的声明。

wsgi.py 

    一个WSGI兼容的webserver的进入点。

 

进入mysite目录,启动server:

python manage.py runserver

 

这样我们就开启了django的默认的开发server,一个用python实现的轻量级的server。不要用在正式的项目环境。

然后打开浏览器访问:http://127.0.0.1:8000/

 

如果想改变默认的端口:

python manage.py runserver 8080

 

如果想让其他的人也可以访问:

python manage.py runserver 0.0.0.0:8000

 

 

数据库的配置:

编辑mysite/settings.py,找到DATABASES:

    1. ENGINE:数据的引擎支持,MySQL PostgreSQL,Oracle,SQLite等。

    2. NAME:数据库的名字

    3. USER:用户名

    3.PASSWORD:密码

    4.HOST:数据库的地址

 

时区的设置:

    TIME_ZONE:Asia/Shanghai 

 

语言的设置:

    LANGUAGE_CODE:zh-cn

 

已经安装的应用

    django-contrib.auth:一个认证系统

    django-contrib.contenttypes:内容类型

    django.contrib.sessions:session框架

    django.contrib.sites:管理多个站点在一个django安装里

    django.contrib.messages:一个消息框架

    django.contrib.staticfiles:一个管理静态文件的框架

 

配置好数据库之后,我们需要创建一些表,为了做这些,可以用:

python manage.py syncdb

 

创建模型

我们用django写的每一个应用都是由一个python的包组成。django可以自动生成一些基本的app的目录结构,所以我们可以更加专注在代码上而不是创建目录结构、

 

Projects VS app

 

项目和应用的区别?

一个项目包含了多个应用如(blog, poll),一个应用也可能在多个项目中

 

我们来创建一个投票的应用

python manage.py startapp polls

 

polls/

    __init__.py

    models.py

    tests.py

    views.py

 

这个就是我们投票的目录。在我们简单的投票系统中,我们有两个模型,一个投票的问题一个选项

 

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 = models.CharField(max_length=200)
        votes = models.IntegerField()

 

 

在settings中注册这个应用:

INSTALLED_APPS = (

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.sites',

'django.contrib.messages',

'django.contrib.staticfiles',

# Uncomment the next line to enable the admin:

# 'django.contrib.admin',

# Uncomment the next line to enable admin documentation:

# 'django.contrib.admindocs',

'polls',

)

 

然后可以用:

python manage.py sql polls查看poll的sql

 

BEGIN;
CREATE TABLE "polls_poll" (
"id" integer NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL
)
;

 CREATE TABLE "polls_choice" (

"id" integer NOT NULL PRIMARY KEY,

"poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),

"choice" varchar(200) NOT NULL,

"votes" integer NOT NULL

)

;

COMMIT;

 

 

然后生成table:

python manage.py syncdb

分享到:
评论

相关推荐

    django起步到实现数据库交互.pdf

    2.Django项目初始化起步。 3.代码工程项目配置,启动,验证初始化成功。 4.从路由,视图函数到浏览器实现交互。 5.从本地mock数据验证开始,到数据库操作实战起步。 6.成功实现浏览器页面与数据库交互操作。 ...... ...

    django起步.docx

    django开始教程,如何安装和使用django

    Python项目开发Django实战-多用户内容发布系统-编程案例解析实例详解课程教程.pdf

    从现在开始,请读者随我一起做一个项目,这个项目的名称叫作“多用户内容...当然,这仅仅是起步,并不意味着学完本章就理解 Django 了。“不积跬步,无以至千里”,最后的复杂系统也是由一个个简单的小功能堆砌起来的。

    在Django的View中使用asyncio的方法

    起步 Django 是个同步框架,本文并不是 让 Django 变成异步框架。而是对于在一个 view 中需要请求多次 http api 的场景。 一个简单的例子 例子来源于 ...

    Django前端环境配置1

    Django前端:Viso安装包百度网盘Node安装在官网Vue安装:https://cn.vuejs.org/ ——vue3——起步——安装——cmd到npm

    Django 配置多站点多域名的实现步骤

    起步 要介绍一个非常方便的 Django 扩展包– django-hosts 。它能够提供在不同的子域名下访问不同的 app。例如,在项目中有多个应用 app01 、 app02 等,希望通过域名 app01.example.com 访问该应用。 安装与配置 ...

    Django处理多用户类型的方法介绍

    起步 这是许多开发者在项目初期要面临的一个普遍问题。要怎样来处理多用户类型。 本文讲介绍对于不同场景和业务需求如何设计用户模型。为项目提供指导设计。 设计之前 在梳理用户设计之前,有几个前提需要遵守。 1...

    Django 自定义404 500等错误页面的实现

    起步 面定义了,无论你今后部署在apache下或者是nginx下,都是生效的。 要想自定义错误页面,需要关闭调试模式 DEBUG = False ,因为调试模式的错误页面是开发下会显示错误信息的。 有两种方法可以实现自定义的...

    Django 设置多环境配置文件载入问题

    起步 通常,针对不同的开发环境,需要不同的配置保证程序可运行且不干扰。单个 settings.py 文件就很难满足需求,需要将他拆分为多个文件,根据特定环境载入不同的配置文件。一种简单的划分就是分为 4 个文件: __...

    如何优雅地处理Django中的favicon.ico图标详解

    起步 默认情况下,浏览器会访问网站 “/favicon.ico” 这个地址获取网站的图标。如果没有配置的话,Django 会返回一个 404 错误。这对于强迫症的人来说,真的很烦。我们有现有的图标,且按开发规范一般存放 static/...

    Angular+Django前后端分离实战项目开发教程

    本篇课程结合前面学习的Angular6和Django框架,将两个框架通过一个实战项目结合在一起,用目前流行的前后端分离开发模式,从零起步,一步步开发成为一个完整的项目并最终打包发布。视频中所出现的细节,错误,以及...

    django疫情数据可视化分析系统(源码+论文+ppt+开发文档)

    在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括疫情数据可视化分析系统的网络应用,在外国线上管理系统已经是很普遍的方式,不过国内的管理系统可能还处于起步阶段。疫情数据可视化...

    Django中使用 Closure Table 储存无限分级数据

    起步 对于数据量大的情况(比如用户之间有邀请链,有点三级分销的意思),就要用到 closure table 的结构来进行存储。那么在 Django 中如何处理这个结构的模型呢? 定义模型 至少是要两个模型的,一个是存储分类,一...

    解决Django生产环境无法加载静态文件问题的解决

    起步 线上部署时因设置了 settings.DEBUG = False 会导致静态文件都是 404 的情况。主要原因是应为关闭DEBUG模式后,Django 便不提供静态文件服务了。 runserver 的启动 如果运行是通过 runserver 命令的方式,那...

    PythonWeb开发基础教程(Django版)(微课版)-教学大纲.doc

    《Python Web开发基础教程》教学大纲 学 时:66 代 码: 适用专业: 制 定: 审 核: 批 准: 一... 三、课程的内容 第1章 Python起步 了解Python Web简介内容,掌握配置Python Web开发环境和创建Django项目。 第2章 D

    Django 表单模型选择框如何使用分组

    起步 Django 表单中有两种字段类型可以使用选择框: ChoiceField 和 ModelChoiceField 。 对于 ChoiceField 的基本使用是: class ExpenseForm(forms.Form): CHOICES = ( (11, 'Credit Card'), (12, 'Student ...

    如何在 Django 模板中输出 “{{“

    起步 随着 javascript 的壮大,前端也要使用自己的模板引擎了。若变量使用 {{ 包裹的形式,而 {{ 又会被 Django 模板引擎解析。导致 {{ 无法输出到前端,这个时候应该怎么处理?大概有三种方式解决。 方法一:...

    Django中使用Celery的方法示例

    起步 在 《分布式任务队列Celery使用说明》 中介绍了在 Python 中使用 Celery 来实验异步任务和定时任务功能。本文介绍如何在 Django 中使用 Celery。 安装 pip install django-celery 这个命令使用的依赖是 ...

    PythonWeb开发基础教程-第1章-Pyhton-Web开发起步.pdf

    PythonWeb开发基础教程-第1章-Pyhton-Web开发起步.pdf该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~

    详解Django 中是否使用时区的区别

    起步 在 Django 的模型中新加了一个日期的字段: import datetime class Instance(models.Model): ... start_time = models.DateTimeField(default=datetime.datetime.now) 同步到数据库时 Django 报出了一个警告...

Global site tag (gtag.js) - Google Analytics