1 环境安装
python+Django+mysql安装,这个很简单就不说了,python是2.7.3版本,Django是1.9,mysql是5.5
把Django的bin目录添加到环境变量里面
2 项目建立
首先建立一个目录Django,这里存放我们的Django项目
cmd下,运行 Django-admin.py startproject mysite,目录差不多是这样
django ├───manage.py └───mysite settings.py urls.py wsgi.py __init__.py
新建app:运行 manage.py startapp blog 可以看到和mysite目录平行生成了一个 blog的目录,关于app和project的区别,app是一个功能集合,我理解是为了解耦和。
3 文件功能
manage.py脚本:用于管理Django站点settings.py: 包含项目的所有配置参数
urls.py: URL根配置
wsgi.py: 内置runserver命令的WSGI应用配置
__init__.py: 用来告诉python,当前目录是python模块
blog目录下:
4 settings.py 设置:
INSTALLED_APPS = [
'blog' #这里添加app 有的Django版本会使用‘mysite.blog’
]
数据库设置:
DATABASES = { 'default': { #'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django', 'USER':'****', 'PASSWORD':'*****', 'HOST':'127.0.0.1', 'PORT':'3306', } }除此之外还有时间和编码设置 ,按照需求更改即可
mysite下的urls.pyLANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Shanghai'
urlpatterns = [ url('^', include('django.contrib.auth.urls')), url(r'^admin/', admin.site.urls), url(r'', include('blog.urls')), #这里是新增的,把blog下的urls导入 ]
blog下的urls.py:
from django.conf.urls import url #views.py文件import,这样才可以使用views.post_list from . import views urlpatterns = [
#这里是从url中传参(title),?P<>是正则中分组的意思,为分组取名为title,也可以不取名,如下
# url(r'^blog/post/(\d{2})/$', views.post_list, name='post_list'), url(r'^blog/post/(?P<title>\d{2})/$', views.post_list, name='post_list'), ]blog下的views.py(views.py虽然是视图层,但是更多功能应该偏向于展示哪儿些数据,真正的展示页面应该使用模板类templates)
这里应该在blog目录下新建一个/templates的文件夹,里面也html文件等。这里就包含了一个 index.html的页面from django.shortcuts import render_to_response from django.shortcuts import render from django.http import HttpResponse from django.template import loader,Context # Create your views here. def post_list(req,title): #title是urls.py中参数 print title t = loader.get_template('index.html') #需要加载的模板 id = {'first':'yan','second':'1'} c = Context({'id':id,'title':title}) #模板需要的数据 return HttpResponse(t.render(c)) #使用模板渲染数据输出页面 #return render_to_response('index.html',{'title':title,'id':id}) #这是另外一个渲染方式 #return HttpResponse('<h1>hello world</h1>') #这是教程里面最初的输出形式,一般不会采用这种方式
<!DOCTYPE html> <html lang="en"> <style> h1 {color:#bf8} </style> <head> <meta charset="UTF-8"> <title>{{title}}</title> #{{}}获取参数 </head> <body> <h1>id:{{id.first}}</h1> #获取id中的变量 </body> </html>
最后呈现出来的就是
这里还没有用到数据库、js,css等一些外部文件的使用,