1. 程式人生 > >Django學習筆記《一》初始化pycharm和mysql資料庫及相關環境

Django學習筆記《一》初始化pycharm和mysql資料庫及相關環境

真的不太好學啊!記錄一下筆記,要不有的東西老師要查!

CSRF驗證

防止偽造資料新增資料庫,關閉方式

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

建立一個app

python manage.py startapp  front

在__init__.py裡面配置

import pymysql
pymysql.install_as_MySQLdb()

在settings.py裡面初始化資料庫

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'book_manage',
        'USER': 'root',
        'PASSWORD': 'kouhz',
        'HOSTNAME': '127.0.0.1',
        'PORT': '3306'
    }
}

把自己建立的app新增進apps

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'front',
]

在urls.py裡面新增自己檔案的路徑

from django.urls import path
from front import views


urlpatterns = [
    path('', views.index),
    path('add_book/', views.add_book, name='add_book'),
    path('book_detail/', views.book_detail, name='book_detail'),
]

在front裡的views增加業務程式碼

from django.shortcuts import render, redirect, reverse
from django.db import connection


##操作資料庫需要corsor和db connection
def get_cursor():
    return connection.cursor()


def index(request):
    cursor = get_cursor()
    cursor.execute("select id,name,author from book")
    books = cursor.fetchall()
    return render(request, 'index.html', context={"books":books})


def add_book(request):
    pass


def book_detail(request, book_id):
    pass

在templates裡面增加html頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <nav>
        <ul class="nav">
            <li><a href="/">首頁</a></li>
            <li><a href="{% url 'add_book' %}">新書上架</a></li>
        </ul>
    </nav>
</body>
</html>

這是頁面樣式

在這裡插入圖片描述

css初始化/在front裡面闖將static在裡面新建front資料夾(和app名字保持一致),再新增css檔案

index.html

{% load static %}


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'front/index.css' %}">
</head>
<body>
    <nav>
        <ul class="nav">
            <li><a href="/">首頁</a></li>
            <li><a href="{% url 'add_book' %}">新書上架</a></li>
        </ul>
    </nav>
</body>
</html>

index.css

/*  *代表所有標籤
外邊距位0
內邊距0
不適用瀏覽器提供的預設樣式
*/

*{
    margin: 0;
    padding: 0;
}

/*背景顏色 高度 預設每一個顯示一行,使用overflow讓顯示內容浮動*/
.nav{
    background: #3a3a3a;
    heigth: 65px;
    overflow: hidden;
}

/*nva 裡面的 li 標籤左浮動,list-style :去掉點*/
/*margin:上下0 左右20*/
/*字型放在中間,設定行高,和外面的nav一樣高*/
.nav li{
    float: left;
    list-style: none;
    margin: 0 20px;
    line-height: 65px;
}

/*nav 的 li 標籤 的 a 設定為白色,取消下劃線*/
.nav li a{
    color:#fff;
    text-decoration: none;
}
/*滑鼠放置在a上面的顏色*/
.nav li a:hover{
    color:pink;
}