搜尋引擎二:Django網站首頁設計
阿新 • • 發佈:2019-02-16
安裝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伺服器