Django网站制作
创建mysite目录
django-admin.py startproject mysite这个命令作用是:这将创建在当前目录创建一个mysite目录
前提是从命令行上cd到你想储存你代码的目录,然后生成各种子目录.
首先需要注意的是文件目录
这里面的文件大致作用:
- books这个 文件夹存放的是新建数据库的各种信息
- books/templates这个目录下装的是网页的布局,当然这个网页的布局就是show.html所提供
- books/views.py定义函数,并且把show.html引入进去,文件内容如下:
from django.shortcuts import render,render_to_response
from django.template import loader
from books import models
# Create your views here.
def show(request):
# publisher_list = [{'name':"gongye",'city':'beijing'}]
publisher_list = models.Publisher.objects.all()
return render_to_response('show.html',{'publisher_list':publisher_list})
- books/models.py文件存放的是你所创建的数据库,代码如下:
#coding=utf-8
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length = 30)
address = models.CharField(max_length = 50)
city = models.CharField(max_length = 60)
state_province = models.CharField(max_length = 30)
country = models.CharField(max_length = 50)
website = models.URLField()
# __unicode__这个函数用来返回某个值可以很好的用于查询和admin界面的显示
def __unicode__(self):
return self.name
class Author(models.Model):
first_name = models.CharField(max_length = 30)
last_name = models.CharField(max_length = 40)
email = models.EmailField(blank = True,verbose_name = 'e-mail')
def __unicode__(self):
return u'%s %s'%(self.first_name,self.last_name)
class Book(models.Model):
title = models.CharField(max_length = 100)
author = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField(blank = True,null = True)
def __unicode__(self):
return self.title
books下其他的文件就是在创建的过程中自己产生的.
website/templates文件里存放的是各种显示的静态网页布局,这么多html文件,只要你在访问测试的时候,端口号后面加上html的文件名字就行.比如,我要访问templates/base.html文件,输入网址:localhost:8000/base就可以.
website/settings.py文件是Django的设置文档,里面的INSTALLED_APPS添加多个应用,比如这里面我九添加了books应用,代码如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'books',
]
增加模板文件夹,能够引入templates,代码如下:(同样都是在settings中修改)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- website/urls.py作用是引导url(资源管理器),代码如下:
#coding=utf-8
"""website URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.9/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import *
from django.contrib import admin
from website.views import *
urlpatterns = patterns('website.views',
url(r'^admin/', admin.site.urls),
(r'^$','my_homepage_view'),
(r'^hello/$','hello'),
(r'^time/$','current_datetime'),#显示当前时间
(r'^time/plus/(\d{1,2})/$','hour_ahead'),#显示几小时后的时间
(r'xiaomi/$','xiaomi'),
(r'name/$','name'),
(r'meta/$','display_meta'),
)
urlpatterns += patterns('books.views',
url(r'^show/','show'),
url(r'search_form/$','search_form'),
url(r'search/$','search'),
)
注意: urls.py与views.py文件是对应的,在views.py中定义函数,一定要添加到urls.py中去.
- website/views.py文件是定义各种函数,便于使用,代码如下:
#coding=utf-8
from django.http import HttpResponse
import datetime
from django.template import loader
from django.shortcuts import render,render_to_response
def hello(request):
return HttpResponse("Hello World")
def my_homepage_view(request):
return HttpResponse("你好")
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>"%now
return HttpResponse(html)
def hour_ahead(request,offset): #定义函数,这个函数名在urls.py文件中必须存在
offset = int(offset)
dt = datetime.datetime.now() + datetime.timedelta(hours = offset)
html = "<html><body>In %s hour(s),it will be %s.</body></html>"%(offset,dt)
return HttpResponse(html)
def xiaomi(request):
t = loader.get_template("xiaomi.html")
html = t.render({})
return HttpResponse(html)
d = {'name':'zhangsan','age':'15'} #可以引入字典
l = ['zhangsan','14'] #引入列表
#定义变量
class A:
age = 11
a = A()
#定义函数
def fun():
return "hello"
def name(request):
today = 1 #1代表判断正确,输出结果;0代表错误,不输出结果
#name_list = ['zhangsan','lisi','wangwu','zhanba']
name_list = []
t = loader.get_template("name.html")
#html = t.render({'name':'zhangjianwei'}) #直接加入值
#html = t.render({'name':fun}) #引用函数
html = t.render({'name':fun,'today_is_weekend':today,'athlete_list':name_list})
return HttpResponse(html)
def display_meta(request):
values = request.META.items()
values.sort()
html= []
path = request.path
for (k,v) in values:
html.append((k,v))
return render_to_response('meta.html',{'meta_data':html,'request_path':path})
Django网站制作的更多相关文章
- Django网站制作根目录,巧用404,可访问根目录任意网页
原文链接:http://www.bianbingdang.com/article_detail/106.html 在制作网页过程中,网站需要格式各样的验证.比如百度站长.搜狗联盟的校验网站.不止如此, ...
- Smint – 用于单页网站制作的 jQuery 导航菜单插件
Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...
- 学习 Mobile App 网站制作的11个优秀案例
我喜欢收集美丽的,精心设计的移动应用程序网站.在我看来,为 App 提供一个美丽的网站显示了设计者和开发者对它的用户和产品的关心,除了开发应用程序,他们去加倍努力去促进应用和传播关于它的 App. 我 ...
- 大型网站制作前端使用PHP后台逻辑用 Java
对于网站团队,大概可以按照职责分为前端.后端.架构三种角色. 前端:负责所有和用户有交互的产品,包括 WEB以及手机客户端 后端:负责各种业务 API 的开发,以及服务器端其他系统的开发 架构:负责设 ...
- [Django] Window上通过IIS发布Django网站
网上的教程坑实在多,以下是本人亲测通过的: 需要解决的问题: 1.使用 python manage.py runserver 来运行服务器,只适用测试环境中使用,正式发布的服务,需要一个可以稳定而持续 ...
- 【转】Django 图表制作(By Highcharts)
马克,待不时之需 Django 图表制作(By Highcharts):https://blog.csdn.net/Temanm/article/details/54141759 免费而优秀的图表JS ...
- pageadmin CMS网站制作教程:栏目单页内容如何修改
pageadmin CMS网站制作教程:栏目单页内容如何修改 一般情况下,如公司介绍,联系方式等介绍内页面都属于单页,单页内容可以直接在栏目设置界面进行修改,如下 1.对栏目单页内容进行设置,登录后台 ...
- ASP.NET动态网站制作(3)--css(2)
前言:css分为四次课讲完,第一节课内容见ASP.NET动态网站制作(2)--css(1),接下来的内容会涉及到定位.浮动.盒子模型(第二次课).css的具体应用(第三次课).css3(第四次课).今 ...
- 10步写了个Django网站,正经网站···
Django做网站只要10步,真的只有10步,不信?咱们来数数-- 今天主要讲解用Pycharm编辑器搭建网站,网站功能是 实现在局域网中快速传递大文件! 比如:同事要给你个1G的文件,你丢一 ...
随机推荐
- python中文编码坑
打印list的时候unicode对象不会自动转为中文!
- 使用multiprocessing模块创建多进程
# 使用multiprocessing模块创建多进程 # multiprcessing模块提供了一个Process类来描述一个进程对象. # 创建子进程时,只需要传入一个执行函数和函数的参数,即可完成 ...
- vue中实现全选功能
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Vue ...
- Animations in UWP Community Toolkit - Overview
概述 UWP Community Toolkit 中有一个 Animations 的集合,它们可以帮助开发者实现很多的动画,本篇我们先来看一下 Animations 的功能都有哪些,再后面会针对每一 ...
- 关于ES6 的对象解构赋值
之 前写了关于ES6数组的解构 现在 go on ; 解构不仅可以用于数组,还可以用于对象: 对象的解构和数组有一个重要的不同.数组的元素是按次序排列的,变量的取值是由他的位置决定的:而对象的属性没有 ...
- python中创建实例属性
虽然可以通过Person类创建出xiaoming.xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同.在现实世界中,区分xiaoming.xiaohong要依靠他们各自的名字.性 ...
- MongoDB系列六(聚合).
一.概念 使用聚合框架可以对集合中的文档进行变换和组合.基本上,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理.这些构件包括筛选(filtering).投射(project ...
- Shell自学二(参数传递和数组)
8.传递参数 1.使用$n来传递参数($0表示文件名) 例子: echo "执行的文件名:$0"; echo "第一个参数为:$1"; ...
- DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)
前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持久化. 首先大家需要明确的是,产品上下文 ...
- [SDOI 2009]Elaxia的路线
Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w**每天都要奔波于宿舍和实验室之间, ...