start python project
1.从官方网站下载Python安装文件,安装后配置环境变量(系统变量path)。
C:\Program Files\Python25;
C:\Program Files\Python25\Scripts;
2.下载Django,解压。打开命令行,进入刚解压的目录,执行python setup.py install,然后把Django中bin目录的路径添加到环境变量path里面。
3.现在打开命令提示符,进入到想要创建应用的目录后键入django-admin.py startproject mysite命令,调用Django的控制台命令新建一个名为mysite的工程,与此同时Django还在新创建的mysite文件夹下生成以下四个分工不同的文件: __init__.py manage.py settings.py urls.py 。
4.在命令提示符下进入工程目录,键入命令manage.py runserver,就可以启动Web服务器来测试新建立的工程。浏览器中输入http://127.0.0.1:8000/ 查看效果(Ctrl+C可停止服务器)。
可以更改端口:manage.py runserver 8070
5.在工程建立好之后,接下来就可以编写Django的应用模块。键入命令python manage.py startapp blog,命令会在当前工程下生成一个名为blog的模块,目录下除了标识Python模块的__init__.py文件,还有额外的两个文件models.py和views.py。
6.在传统的Web的开发中,很大的一部分工作量被消耗在数据库中创建需要的数据表和设置表字段上,而Django为此提供了轻量级的解决方案。借助Django内部的对象关系映射机制,可以用Python语言实现对数据库表中的实体进行操作,实体模型的描述需要在文件models.py中配置。
from django.db import models from django.contrib import admin class BlogPost(models.Model): title= models.CharField(max_length=150) body = models.TextField() timestamp = models.DateTimeField() admin.site.register(BlogPost)
在setting.py中配置blog的App
INSTALLED_APPS中去掉'django.contrib.admin',前面的#,换行加入'mysite.blog',
7.数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 'NAME': r'E:\my study\Python\mysite\blog.db', # Or path to database file if using sqlite3. # The following settings are not used with sqlite3: 'USER': '', 'PASSWORD': '', 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 'PORT': '', # Set to empty string for default. } }
blog.db即数据配置文件
在命令行输入manage.py syncdb,django会自动生成数据库的表,并生成blog.db在指定的位置
注:调用命令没有成功,报出了no module named blog
但是blog模块是有的,猜测应该是地址不对,将setting.py文件中的INSTALLED_APPS配置的'mysite.blog',改为'blog',再次调用命令,成功。
8.URL配置
from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: from django.contrib import admin #admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^mysite/', include('mysite.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), )
from django.contrib import admin是为了导入admin包
url(r'^admin/', include(admin.site.urls)),是为了将admin的urls与admin/路径绑定。
在blog里的model.py中增加admin.site.register(BlogPost)是为了将模块绑定到admin中,启动服务,访问localhost:8070/admin
出现admin的登录窗口,输入之前创建数据库时输入的超级用户的用户名和密码,登录即可看见blog的页面,点击add blog可以添加blog的记录