天天看點

python-django:建站(個人首頁)

超詳細django建站過程,含資料庫操作

準備

  1. 安裝django

    pip install django

  2. 建立項目

    指定檔案夾下

    建立項目 django --admin startproject 項目名

    建立應用名:python manage.py startapp 應用名

    python-django:建站(個人首頁)
    python-django:建站(個人首頁)
    後續基于已制作好的project示範項目名 myproj,應用名myapp

配置(setting.py)

  1. 注冊
    python-django:建站(個人首頁)
  2. 配置資料庫(mysql)以及模闆與靜态檔案工作目錄
    python-django:建站(個人首頁)

    使用mysql資料庫需在初始化中導入pymysql相關配置項,

    在__init__.py中導入

import pymysql
pymysql.install_as_MySQLdb()
           

靜态檔案工作目錄

用于放html等網頁靜态檔案

python-django:建站(個人首頁)

模型(model.py)

通過類操作資料庫,建立兩張表

執行指令:

生成遷移檔案:python manege.py makemigrations

生成遷移表:pyhon manege.py migrate

from django.db import models

# Create your models here.
class PersonInfo(models.Model):
    user = models.CharField(max_length=20)
    pw = models.CharField(max_length=10)


class Pic(models.Model):
    img = models.CharField(max_length=10)
    adress = models.CharField(max_length=25)
           

登入資料庫檢視

python-django:建站(個人首頁)

添加使用者名與密碼,用于登入驗證;

insert into myapp_personinfo values(0,'user','password');
           

視圖(views.py)

具體html頁面請自行百度套模闆,由于部落客的頁面做的爛,就不提供了,隻寫關于django的python代碼

login頁面
def login(request):
    if request.session.has_key('islogin'):
        # 使用者已登入, 跳轉到首頁面
        return redirect('/index')
    else:
    	#判斷使用者名記住狀态
        if 'username' in request.COOKIES:
            username = request.COOKIES['username']
        else:
            username = ''
     跳轉驗證頁面
    return render(request, "login.html", {'username':username})

           

驗證頁面(login_check)

def login_check(request):
	#從浏覽器送出的表單擷取資料
    username = request.POST.get('username')
    password = request.POST.get('password')
    remember = request.POST.get('remember')
    print(username)
    print(password)
	#查詢資料庫并驗證
    info = PersonInfo.objects.get(user=username)
    if password == info.pw:
    	#驗證通過跳轉首頁
        response = redirect('/index')
        if remember == 'on':
            response.set_cookie('username', username, max_age=180)

        request.session['islogin'] = True
        request.session['username'] = username
        return response
     否則跳轉登入頁面
    return redirect('/login')

           

配置路由(urls.py)

  1. 現在項目檔案夾下(myproj)的urls.py内添加應用路由

    配置

    python-django:建站(個人首頁)
  2. 在應用目錄下建立urls.py

    配置添加頁面路由

    python-django:建站(個人首頁)
    首頁加密處理
def login_required(view_func):
    '''登入判斷裝飾器'''
    def wrapper(request, *view_args, **view_kwargs):
        # 判斷使用者是否登入
        if request.session.has_key('islogin'):
            # 使用者已登入,調用對應的視圖
            return view_func(request, *view_args, **view_kwargs)
        else:
            # 使用者未登入,跳轉到登入頁
            return redirect('/login')
    return wrapper

           

首頁傳回函數

@login_required
def index(request):
    return render(request, "index.html")
           

示範

具體html頁面制作非我所長,自行百度套模闆,将制作好的html檔案置于templates中即可

在指令行輸入

python manage.py runserver
           
python-django:建站(個人首頁)
python-django:建站(個人首頁)