安装Django
- pip install django
- 或者是: easy_install django
新建项目和应用
- 找一个地方放项目文件:这里是E盘
- 按住shift,再点击右键,打开CMD
- 输入:django-admin startproject search_engine
- 这样就新建了个名为search_engine的项目文件夹
- 输入:manage.py startapp search
- 这样就新建了一个名为search的应用文件夹
- 将search文件夹移到search_engine文件夹里面,并删除migrations文件夹
- 现在的项目文件夹树为:
注册应用_指明模板和静态文件夹路径
- 打开setting.py,找到INSTALLED_APPS
- 添加应用的名称进去(注意有逗号):‘search_engine.search’,
- 模板文件路径:TEMPLATE_DIRS = (“E:/search_engine/search_engine/search/templates”,)
- 静态文件路径:STATICFILES_DIRS = (
os.path.join(BASE_DIR, “static”).replace(‘\’,’/’),
)
# -*- coding:utf-8 -*-
# settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '(&%ja6j(vz!hph5!+25cfvrdnib^%28uu9l-igc*@x8r-j0vdi'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
TEMPLATE_DEBUG = True
# 指明模板文件路径
TEMPLATE_DIRS = ("E:/search_engine/search_engine/search/templates",)
ALLOWED_HOSTS = []
# 注册应用
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'search_engine.search',
#自己注册的应用,应用在search_engine文件夹下
#所以路径为search_engine.search
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'search_engine.urls'
WSGI_APPLICATION = 'search_engine.wsgi.application'
# 设置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
# 初始化信息
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# 绑定静态文件夹(即指明static文件夹路径)
# 以便找到对应的资源,如image,js,css
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static").replace('\\','/'),
)
定义网站的URL映射
- 打开urls.py,定义url的映射
# -*- coding:utf-8 -*-
from django.conf.urls import patterns, include, url
from django.contrib import admin
from search import views
#定义不同url的映射
#即不同url调用views中不同的函数
urlpatterns = patterns('',
#把主页映射到viwes.py里面的search_form函数
#从浏览器访问主页的时候,会执行这句,然后调用search_form函数
url(r'^$', 'views.search_form', name='home'),
url(r'^admin/', include(admin.site.urls)),
)
定义views.py中对应的函数
- 打开search中的views.py,定义对应的映射函数
# -*- coding:utf-8 -*-
from django.shortcuts import render_to_response
from django.http import HttpResponse
#定义url对应的映射函数search_form
#接受一个request请求,返回一个html
def search_form(request):
return render_to_response('search_form.html')
定义html模板search_form.html
- 先在templates文件夹中新建一个基类模板base.html
- 然后再新建一个search_form.html继承并扩展
<!DOCTYPE HTML PUBLIC "‐//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
{% block footer %}
{% endblock %}
</body>
</html>
search_form.html:
{% extends "base.html" %}
{% block title %}Search_form{% endblock %}
{% block content %}
<div id="logo" style="text-align: center; margin-top: 15%">
{% load staticfiles %}
<img src="{% static "images/bg.png" %}" alt="bg image"/>
</div>
<form action="/search/" method="get">
<div style="width: 100%; text-align: center;margin-top: 10">
<input type="text" name="q" maxlength="100" size="60">
<input type="submit" value="Search">
</div>
</form>
{% endblock %}
{% block footer %}
<div style="text-align: center; margin-top: 50">
<p>Thanks for visiting my site.</p>
</div>
{% endblock %}
放入静态资源(图片,js,css)
- 在static文件夹中新建一个images文件夹
- 里面放入bg.png图片文件
运行自带服务器测试
- 项目根目录下执行:manage.py runserver
- 在浏览器执行:127.0.0.1:8000
小结
- 现在点击search会出现404,因为结果页面还没写
- 现在用的服务器是自带的,下一步换成nginx服务器