文档章节

七日Python之路--第三天(之初试Django 2-1)

明天以后
 明天以后
发布于 2014/07/23 14:58
字数 1019
阅读 270
收藏 4

    #意外情况出现,以为电脑硬盘真的坏掉了。原来是忘记插电源 @。@ ~ 前些时间玩游戏,电脑无故突然断电关机,再开机一闪便又突然断电关机。最终找到原因,电脑过热,保护性关机。然后将光驱拆下,发现散热效果好了一些,最重要的原因还是好几天没玩游戏了...........闲话略多,转入正题


(一)关于Django

    Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。

    Ubuntu下的安装:一般都自带Python的。网上教程比较多了....

dizzy@dizzy-pc:~$ python
Python 2.7.3 (default, Apr 20 2012, 22:44:07) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> help(django)
VERSION = (1, 6, 4, 'final', 0)
#可以查看django版本等信息。

(二)第一个Django的app

#环境:Python2.7,Django1.6,Ubuntu12.04

        Python 及 Django 安装成功之后,就可以创建Django工程了        

    (1)教你开始写Django1.6的第1个app

#先创建一个文件夹
dizzy@dizzy-pc:~$ mkdir Python
dizzy@dizzy-pc:~$ cd Python
#然后创建工程
dizzy@dizzy-pc:~/Python$ django-admin.py startproject mysite
dizzy@dizzy-pc:~/Python$ cd mysite
#然后这个工程就可以启动服务了
dizzy@dizzy-pc:~/Python/mysite$ python manage.py runserver
Validating models...

0 errors found
July 23, 2014 - 14:17:29
Django version 1.6.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
#这样,打开浏览器访问: 便可看到: It Worked! 关闭服务:ctrl+c

#新创建的项目里面会有:manage.py文件,mysite文件夹
#在mysite文件夹里面会有:__init__.py,settings.py,urls.py,wsgi.py四个文件

#__init__.py是一个空文件,
#setting.py 是项目的配置文件。需要修改两个地方,这里使用默认的SQLite3数据库
LANGUAGE_CODE = 'zh-cn' #原:en-us
TIME_ZONE = 'Asia/Shanghai' #原:UTC

#配置完之后,便可以创建数据表了
dizzy@dizzy-pc:~/Python/mysite$ python manage.py syncdb
#创建是还要设置一个超级管理员,用于后台登录。
#设置完之后,开启服务,便可进入后台管理界面了:http://127.0.0.1:8000/admin/

    (2)教你开始写Django1.6的第1个app

#创建一个用于投票的app。
#进入mysite工程根目录,创建app
dizzy@dizzy-pc:~/Python/mysite$ python manage.py startapp polls
dizzy@dizzy-pc:~/Python/mysite$ ls polls
admin.py   __init__.py   models.py  urls.py   views.py

#这样。Django已经生成了,app通常所需的模板文件。

        下面创建两个models。Poll 和 Choice

dizzy@dizzy-pc:~/Python/mysite$ vim polls/models.py

        修改文件如下:

from django.db import models

# Create your models here.

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)
#基本创建model过程就是这样,细节还要深入研究!

        然后修改工程的配置文件setting.py,在INSTALLED_APP元组下面添加刚才创建的app:polls

dizzy@dizzy-pc:~/Python/mysite$ vim mysite/settings.py

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

#可以使用 python manage.py sql polls 查看app的建表SQL
#使用 python manage.py syncdb 进行创建数据库表
dizzy@dizzy-pc:~/Python/mysite$ ./manage.py sql polls
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_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL
)
;

COMMIT;

#这样就可以通过设置model让Django自动创建数据库表了

        要想在后台admin中管理polls。还需要修改app下面的admin.py 文件。

from django.contrib import admin

# Register your models here.

from django.contrib import admin
from polls.models import Choice,Poll

class ChoiceInLine(admin.StackedInline):
    model = Choice
    extra = 3

class PollAdmin(admin.ModelAdmin):
    fieldsets = [
        (None,                  {'fields':['question']}),
        ('Date information',    {'fields':['pub_date'],'classes':['collapse']}),
    ]
    inlines = [ChoiceInLine]

admin.site.register(Poll,PollAdmin)

#这部分代码,大体能看懂,具体的规则还要稍后的仔细研究。
##这部分代码,由于拼写失误,导致多处出错。细节决定成败!!

        这样再重启服务,就能在后台管理polls应用了。

© 著作权归作者所有

明天以后

明天以后

粉丝 76
博文 130
码字总数 87367
作品 0
昌平
程序员
私信 提问
七日Python之路--第三天

之前由于看基础看的觉着没意思,才去提前看一下Django的。现在突然不知到该干啥了。 不管什么语言,官方文档是必须的。so........... 莫名浮躁,实在看不下去........ 待会研究 re 吧。虽然之...

明天以后
2014/07/23
275
0
七日Python之路--第三天(之初试Django 2-2)

接上文。前面(1)(2)部分已经实现浏览器访问工程项目,并且能后台管理新创建的app。 (二)第一个Django的app (3)教你开始写Django1.6的第1个app 前面已经完成了model(M)的设置。剩下...

明天以后
2014/07/23
190
0
七日Python之路--第一天

网上的资源是丰富的。但难免有些过时的信息,比如我现在使用的是去年下载的python3.3,而网上多数都是Python2.7。 差别比较大的就是:①读取用户输入raw_input()已经不能使用,只能使用input...

明天以后
2014/07/21
1.9K
0
七日Python之路--第三天(之不安分 wxPython)

Python有好多个GUI框架,wxPython比较流行,so just do it..... Win下各种不爽,又换Ubuntu 跟着教程做个记事本。视频地址:http://www.pythoner.cn/course/topic/wxPython-gui/ (一)wxpyt...

明天以后
2014/07/24
3.5K
5
七日Python之路--第二天

由于之前使用过一段Ubuntu,所以基本命令啥的都还可以。装差利器Vim也是使用过一段时间的。 Ubuntu快速打开终端Alt+Ctrl+T,这样才显得犀利一些嘛。说实话,终端编辑文件啥的,确实比Win下面...

明天以后
2014/07/22
518
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring5 依赖注入和循环依赖处理

//TODO populateBean 注入属性 doGetBean->getSingleton 删除bean缓存

小小明1995
10分钟前
37
0
每天AC系列(七):合并两个有序链表

1 题目 LeetCode第21题,合并两个有序链表. 2 直接合并 因为已经有序了,类似归并排序中的合并一样,操作不难,直接上代码了. ListNode t = new ListNode(0);ListNode head = t;while(l1 != nu...

Blueeeeeee
13分钟前
26
0
数据结构之双向链表-c语言实现

原文链接:http://blog.seclibs.com/%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%e4%b9%8b%e5%8f%8c%e5%90%91%e9%93%be%e8%a1%a8-c%e8%af%ad%e8%a8%80%e5%ae%9e%e7%8e%b0/ 这次完成了双向链表的代......

无心的梦呓
14分钟前
41
0
Check If a String Is Numeric in Java

1. Introduction Oftentimes while operating upon Strings, we need to figure out whether a String is a valid number or not. In this tutorial, we’ll explore multiple ways to detec......

Ciet
20分钟前
26
0
SpringCloud 基础教程(六)-负载均衡Ribbon

 我的博客:兰陵笑笑生,欢迎浏览博客!  上一章 SpringCloud基础教程(五)-配置中心热生效和高可用当中,我们对配置中心进行进行了深入的了解,本章将继续微服务架构的深入学习,了解在微服务...

_兰陵笑笑生
54分钟前
49
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部