跟我一起Django - 01 安装和初始化

跟我一起Django - 01 安装和初始化

python环境

C:\Python27\Lib\site-packages>python --version
Python 2.7.5

安装setuptools

下载脚本:https://bootstrap.pypa.io/ez_setup.py

python ez_setup.py

django环境

下载:https://www.djangoproject.com/download/1.7/tarball/

解压缩后进入目录:

python setup.py install
... ...
... ...

测试下:

E:\>python
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django;
>>> print django.get_version();
1.7
>>>

构建一个blog

python C:\Python27\Lib\site-packages\Django-1.7-py2.7.egg\django\bin\django-admin.py startproject mysite
[email protected] /E/mysite
$ ls -l
total 1
-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.py
drwxr-xr-x    1 ganiks.l Administ        0 Sep 11 14:13 mysite

[email protected] /E/mysite
$ ls -l mysite/
total 2
-rw-r--r--    1 ganiks.l Administ        0 Sep 11 13:42 __init__.py
-rw-r--r--    1 ganiks.l Administ     2042 Sep 11 13:42 settings.py
-rw-r--r--    1 ganiks.l Administ      275 Sep 11 13:42 urls.py
-rw-r--r--    1 ganiks.l Administ      387 Sep 11 13:42 wsgi.py

运行开发服务器

[email protected] /E/mysite
$ ./manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
September 11, 2014 - 14:22:59
Django version 1.7, using settings ‘mysite.settings‘
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[11/Sep/2014 14:23:03] "GET / HTTP/1.1" 200 1759

创建blog app

ganiks.liu@MAMIS-GAIKS-LIU /E/mysite/mysite
$ ../manage.py startapp blog

ganiks.liu@MAMIS-GAIKS-LIU /E/mysite/mysite
$ gvim settings.py

ganiks.liu@MAMIS-GAIKS-LIU /E/mysite
$ ls -l
total 19
-rw-r--r--    1 ganiks.l Administ    36864 Sep 11 15:04 db.sqlite3
-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.py
-rw-r--r--    1 ganiks.l Administ      312 Sep 11 14:42 models.py
drwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysite

注意,这里是在mysite/mysite目录下执行的创建app操作,所以blog是mysite.blog

编辑mysite/settings.py, 添加mysite.blog

# Application definition

INSTALLED_APPS = (
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘mysite.blog‘,
)

Django 采用 INSTALL_APPS 来决定系统不同部分的配置,包括自动化的admin应用以及测试框架

创建你的Model

from django.db import models

# Create your models here.
#django.db.models.Model is the core partof the ORM system of Django
class BlogPost(models.Model):
	# Django will add an auto-increment, unique id
	title = models.CharField(max_length=150)
	body = models.TextField()
	timestamp = models.DataTimeField()

设置数据库

使用SQLite

SQLite非常适合做测试,甚至可以部署在没有大量并发写入的情况下。因为SQLite使用本地文件系统作为存储介质并且用原生的文件系统权限来做访问限制。
像主机、端口、用户和密码这些统统不需要了。

创建表

[email protected] /E/mysite
$ ./manage.py syncdb
Operations to perform:
  Apply all migrations: admin, contenttypes, auth, sessions
Running migrations:
  No migrations to apply.
  Your models have changes that are not yet reflected in a migration, and so won‘t be applied.
  Run ‘manage.py makemigrations‘ to make new migrations, and then re-run ‘manage.py migrate‘ to apply them.

 You have installed Django‘s auth system, and don‘t have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use ‘ganiks.liu‘): ganiks
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

[email protected] /E/mysite
$ manage.py makemigrations
Migrations for ‘blog‘:
  0001_initial.py:
    - Create model BlogPost

[email protected] /E/mysite
$ ls -l
total 19
-rw-r--r--    1 ganiks.l Administ    36864 Sep 11 15:07 db.sqlite3
-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.py
drwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysite

[email protected] /E/mysite
$ manage.py migrate
 perations to perform:
  Apply all migrations: admin, blog, contenttypes, auth, sessions
Running migrations:
  Applying blog.0001_initial... OK

[email protected] /E/mysite$ ls -l
total 19
-rw-r--r--    1 ganiks.l Administ    37888 Sep 11 15:09 db.sqlite3
-rwxr-xr-x    1 ganiks.l Administ      249 Sep 11 13:42 manage.py
drwxr-xr-x    1 ganiks.l Administ        0 Sep 11 15:04 mysite

当执行syncdb命令时, Django会查找INSTALLED_APPS中的每一个models.py文件。
并为每一个都创建一个数据库表(多对多关系会有例外)

另外刚刚的过程中还创建了一个超级用户,这个在后面加入Django的自动admin时很方便。

You have installed Django‘s auth system, and don‘t have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use ‘ganiks.liu‘): ganiks
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.

设置自动admin应用:

自动化的后台应用程序admin可以说是Django“皇冠上的明珠”, 任何对为Web应用创建简单的CURD接口感到厌倦的人来说,这是极大的福音,类似Yii的Gii。

由于自动admin不是Django的必要组件,因此你先要在settings.py文件中指定,就跟你刚刚指定mysite.blog一样。
但是呢,其实我这次用的 Django1.7 版本中默认的已经启用了如下app
(我现在看的教程是老版本2008年的,这样可以发现好多Django的进化过程~)

INSTALLED_APPS = (
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘mysite.blog‘,
)

还有 urls.py也都配置好了admin路由

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns(‘‘,
    # Examples:
    # url(r‘^$‘, ‘mysite.views.home‘, name=‘home‘),
    # url(r‘^blog/‘, include(‘blog.urls‘)),

    url(r‘^admin/‘, include(admin.site.urls)),
)

最后,你的应用程序要告诉Django要在admin窗口中显示哪一个model可以供编辑;要做到这一点,只要想默认的admin站点注册你的app model即可【添加1,添加2】

from django.db import models
#添加1
from django.contrib import admin

# Create your models here.
#django.db.models.Model is the core partof the ORM system of Django
class BlogPost(models.Model):
	# Django will add an auto-increment, unique id
	title = models.CharField(max_length=150)
	body = models.TextField()
	timestamp = models.DateTimeField()
#添加2
admin.site.register(BlogPost)

我的app(Blog posts)没有出现在 admin中的3个常见原因:

  • 忘记向 admin.site.register注册你的model类
  • models.py有错误
  • 忘记在settings.py中的INSTALLED_APPS中添加app

现在blog app已经创建完成,如何完善,参看下一篇。

转自:http://www.cnblogs.com/ganiks/p/3967994.html

时间: 2024-12-08 06:21:02

跟我一起Django - 01 安装和初始化的相关文章

一、Python Django的安装

   一.Python Django的安装 一.Django的安装 # wget https://www.djangoproject.com/m/releases/1.3/Django-1.3.7.tar.gz --no-check-certificate # tar -zxvf Django-1.3.7.tar.gz # cd Django-1.3.7 # python setup.py install # python Python 2.6.6 (r266:84292, Nov 22 201

zabbix docker - 安装和初始化配置

zabbix docker - 安装和初始化配置 安装zabbix server docker-mysql版本 zabbix server支持不同的数据库(详见zabbix的docker hub),这里选择mysql作为底层数据库, $ docker pull zabbix/zabbix-server-mysql 安装mysql docker $ docker pull mysql 设置和启动mysql数据库 $ docker run --name zabbix -v /var/docker_d

bash环境下自动安装并初始化oh-my-zsh & autojump zsh

Linux和Mac系统默认的shell 都是bash,但是真正强大的shell应属于zsh,而且完全监控bash,是shell中的终极杀手,有很多bash所没有的功能,但是zsh的初期配置太过繁琐,流行率一直不高,直到有个叫Robby Russell的家伙在github上开发了oh-my-zsh项目,使大家使用zsh的便捷性大大提高. 由于在公司的电脑是windows,就折腾了下cygwin,并且安装了zsh,这样做起维护方便很多了,而且我把autojump项目也集成一起,最后写了一个自动安装的

【九天教您南方cass 9.1】01 安装Cad和Cass9.1

同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 今后会将cass的教程目录定期发布在测量空间中. 我是本节课主讲老师九天. 九天老师的联系方式 点击直接请教九天老师吧! [九天教您南方cass 9.1]01 安装Cad和Cass9.1 首先要讲的是Cad和Cass的那点事儿 1,  正确安装Cad2010官方版本(对照自己的电脑系统win7,32,64,xp) 2,  使用注册机注册xf-a2010-32bits.exe 3,  正确安装cass9.1官方版本(对照自己的电脑

MariaDB安装、初始化及常用操作

1.Linux(CentOS 7.2)下安装与初始化 #安装 yum install mariadb-server #设置编码 vim /etc/my.cnf [mysqld]character-set-server=utf8 #启动 systemctl start mariadb #自启动 systemctl enable mariadb #停止 systemctl stop mariadb #初始化 mysql_secure_installation 2.连接.查看用户.创建用户.授权 #连

Window环境下Python和Django的安装,以及项目的创建

1.首先我们要下载python和Django,他们的下载地址如下 python地址:https://www.python.org/ Django地址:  https://www.djangoproject.com/ 2. 安装Django前要先安装好python的环境. a. 下载python安装包后,一直点击next(下一步) b. 配置python环境变量 c. 测试python安装是否成功,cmd打开命令行输入 python 命令,如下图即成功了 3. 开始安装Django, 安装Djan

Django快速安装以及创建我的第一个Django项目

特别说明:本文是针对Django 1.11和Python 3或更高版本编写的.如果Django版本不匹配,可跳过该文章,或者将您的Django更新到最新版本. 一.Django安装步骤 1.安装版本: Django1.11.1 Django 下载地址:https://www.djangoproject.com/download/ 2.支持的PYTHON版本 django1.11以后不再支持python2.7 ,所以必须是python3版本上 3.安装python3+ Python 下载地址:ht

操作系统安装安装及初始化规范

操作系统安装安装及初始化规范 V2.0 操作系统安装流程 服务器采购 服务器验收并设置raid 服务商提供验收单,运维验收负责人签字 服务器上架 资产录入 开始自动化安装 将新服务器划入装机vlan 根据资产清单上的mac地址,自定义安装. 1.机房 2.机房区域 3.机柜 4.服务器位置 5.服务器网线接入端口 6.该端口mac地址 7.profile 操作系统 分区等 预分配的ip地址 主机名 子网 网关 dns 角色 3.自动化装机平台:安装 00:0c:29:ff:67:f0 IP:19

Django之路——2 Django的安装

Django的安装分为两种方式,一种是命令行安装,另外一种是pycharm安装.在这里只说一种在命令行里面安装的 1.命令行安装 这个自不必多说,直接上干货,如果遇到pip版本过低,安装失败的,请自自行按照命令行的提示更新pip版本. 由于我已经安装过了 所以显示我已经安装了 目前最新版本是2.0.6版本.安装之后我们还要做一件事就是把Django加入环境变量: 找到图上的这个Django-admin.exe(应用程序),这样就说明我们安装成功了,然后要做的就是把这个加入环境变量,这样方便以后再