Windows下Python的Django框架环境部署及应用编写入门
环境搭建 2、安装所需的软件包: 3、测试python及django 4、建立第一个django项目: django-admin.py startproject djangoproject1 这个项目目录下有4个文件: __init__.py manage.py ###功能与django-admin.py相同的文件,只是这个主要用于管理当前项目 settings.py ###当前项目的设置文件,比如:webapp目录的设置、数据库连接的设置、模板目录的设置等 urls.py ###当前项目url导航的设置,用一个正则匹配模式这匹配url规则并映射到指定的文件去处理请求 5、安装django自带的admin应用,即安装一个webapp DATABASES = { 'default': { 'ENGINE': 'sqlite3',#设置使用sqlite3数据库 'NAME': r'C:Users。。。。test.db',# sqlite3的文件路径 'USER': '',# Not used with sqlite3. 'PASSWORD': '',# Not used with sqlite3. 'HOST': '',# Set to empty string for localhost. Not used with sqlite3. 'PORT': '',# Set to empty string for default. Not used with sqlite3. } } 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',##取消原来的注释 ) 修改urls.py问件中的如下内容: # Uncomment the next two lines to enable the admin: from django.contrib import admin ##取消注释 admin.autodiscover() ##取消注释 # 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)),###取消注释 6、同步admin应用的数据库: manage.py syncdb 会提示创建一个超级用户,输入yes并按照提示创建一个账号即可 7、测试admin应用: manage.py runserver 浏览器中输入地址:http://127.0.0.1:8000/admin/ 8、安装admin的文档模块: pip install docutils 安装完成后重启django服务,访问地址http://127.0.0.1:8000/admin/doc/ 9、使用和学习admin应用: 10、创建自己的应用: manage.py startapp myapp 命令会在当前目录下创建一个app的目录mysite,其下有文件: __init__.py models.py ##用于创建数据模型的,即设计数据库结构的,在这里面配置到数据库的模块,django会自动帮你创建相应的数据库表结构 views.py ##视图文件,用于响应用户请求并在处理后返回结果,这里面主要编写请求事件的响应函数 11、安装自己的应用: INSTALLED_APPS = ( ...... 'djangoproject1.myapp',###添加这一句 ) 12、创建第一个页面: from django.http import HttpResponse def home(request): return HttpResponse("Hello Django") 13、设置url请求页面: urlpatterns = patterns('',# Examples: url(r'^$','djangoproject1.myapp.views.home',name='home'),) 14、测试自己的应用: manage.py runserver 访问:http://127.0.0.1:8000
from django.db import models class Location(models.Model): city = models.CharField(max_length=50) state = models.CharField(max_length=50,null=True,blank=True) country = models.CharField(max_length=50) def __str__(self): if self.state: return "%s,%s,%s" % (self.city,self.state,self.country) else: return "%s,self.country) class Job(models.Model): pub_date = models.DateField() job_title = models.CharField(max_length=50) job_description = models.TextField() location = models.ForeignKey(Location) def __str__(self): return "%s (%s)" % (self.job_title,self.location) 2、让模式生效: 3、如何应用模式: from django.template import Context,loader from django.http import HttpResponse from myapp.models import Job def home(request): object_list = Job.objects.order_by('-pub_date')[:10] str_count = "The Count of job table is %s"%Job.objects.count() str_job_desc = "<br>".str(join(Job.objects.all())) return HttpResponse(str_count + "<br>" + str_job_desc) 重启django,访问http://127.0.0.1:8000,如果出现字符信息说明正确,只是这时显示的是数据数据总数为0,内容为空而已 4、在admin中配置我的应用: from django.contrib import admin from mydjango.myapp import models class DocumentAdmin(admin.ModelAdmin): pass class CommentAdmin(admin.ModelAdmin): pass admin.site.register(models.Location,DocumentAdmin) admin.site.register(models.Job,CommentAdmin) 重启django,访问http://127.0.0.1:8000/admin, 就可以看到我的应用中的数据可以在这里管理了。 5、在admin中管理我的应用: 6、开始设置模板: TEMPLATE_DIRS = ( "C:/Users/xiaowu/workspace/mydjango/templates",##注意斜线的格式,是/而不是,即使在windows下 ) 7、创建模板文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Company Site: {% block title %}Page{% endblock %}</title> {% block extrahead %}{% endblock %} </head> <body> {% block content %}{% endblock %} </body> </html> template/mytemp目录下的base.html内容 [html] view plain copy {% extends "base.html" %} {% block extrahead %} <style> body { font-style: arial; } h1 { text-align: center; } .job .title { font-size: 120%; font-weight: bold; } .job .posted { font-style: italic; } </style> {% endblock %} template/mytemp目录下的job_list.html
{% extends "jobs/base.html" %} {% block title %}Job List{% endblock %} {% block content %} <h1>Job List</h1> <ul> {% for job in object_list %} <li><a href="{{ job.id }}">{{ job.job_title }}</a></li> {% endfor %} </ul> {% endblock %} template/mytemp目录下的job_detail.html
{% extends "mytemp/base.html" %} {% block title %}Job Detail{% endblock %} {% block content %} <h1>Job Detail</h1> <div class="job"> <div class="title"> {{ job.job_title }} - {{ job.location }} </div> <div class="posted"> Posted: {{ job.pub_date|date:"d-M-Y" }} </div> <div class="description"> {{ job.job_description }} </div> </div> {% endblock %} 8、应用模板文件:
在django中是在views.py中具体的引用模板,具体方法见下: 方法一: from django.template import Context,loader from django.http import HttpResponse from myapp.models import Job def home(request): object_list = Job.objects.order_by('-pub_date')[:10] t = loader.get_template('mytemp/job_list.html') c = Context({ 'object_list': object_list,}) return HttpResponse(t.render(c)) 方法二: from django.shortcuts import get_object_or_404,render_to_response from myapp.models import Job def home(request,job_id): job = get_object_or_404(Job,pk=job_id) return render_to_response('mytemp/job_detail.html',{'object': job}) 9、最后的views.py文件内容如下: from django.template import Context,loader from django.http import HttpResponse from myapp.models import Job from django.shortcuts import get_object_or_404,render_to_response def home(request): return HttpResponse("Hello Django") def index(request): object_list = Job.objects.order_by('-pub_date')[:10] t = loader.get_template('mytemp/job_list.html') c = Context({ 'object_list': object_list,}) return HttpResponse(t.render(c)) def detail(request,job_id): job = get_object_or_404(Job,pk=job_id) return render_to_response('mytemp/job_detail.html',{'object': job}) 9、配置index、detail视图的url,在urls.py添加如下内容: url(r'^job/$',('mydjango.myapp.views.index')),url(r'^job/(?P<job_id>d+)/$',('mydjango.myapp.views.detail')), 然后重启服务后,访问http://127.0.0.1:8000/job/ ok,所有的结构都已经用到了,剩下的就是想出一个有趣的项目赶紧上手吧! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |