python之django框架前端與后端的結合


一、django框架的創建

1)第一種方法:cmd命令行里面進行創建

 a、創建一個文件夾

 b、打開文件夾,按照shift鍵,鼠標右鍵,點從此處打開命令行窗口

運行django: python mannage.py runserver

2)第二種方法:pycharm里面進行創建

3、運行django框架

 1、點擊三角符號,運行

 2、生成對話框

3、點擊網址,

 

二、分析各個文件夾的意義

1)

 

  noevl          app/應用

  novel          項目

  manage.py      管理文件

  templates       存放模板文件的文件夾

2)具體分析各個文件的意義

Projects

  novel       :APP 文件名

    static

      css

      js

      img

    __init__.py  :聲明當前文件夾可以是一個模塊

    admin.py    :數據庫如果希望被后台看到,需要在這個文件下進行注冊

    apps.py

    models.py  :映射了數據庫所創建的表

    tests.py   :實現某些測試驅動

    viems.py     :index函數返回index.html,但要templates里面去找index.html文件

  templates

    index.html

    login.html

  webapp

    __init__.py

    settings.py  :定義了靜態文件存放的路徑,STATIC_URL = '/static/'。定義了數據庫的類型,也就是連接所在的的數據庫

    urls.py    :定義路由:urls(r'^$',viems.index)。==》去viems.py找到index函數

    wsgi.py 

三、創建應用的前的准備工作

1)修改成中文界面

LANGUAGE_CODE= 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

2)debug模式

debug : 調試模式,開發者模式。再發布前一定要關閉

四、寫入第一個程序,hello world

1)創建路由

2)創建視圖

 

3)注意 路由 和視圖 直接的關系

打開網頁

五、前端文件與django的結和

 前端程序:html,css,js,jquery  

   后端程序:python,數據庫

 1)html文件放入templates里面

 2)視圖引入 index.html文件

3)運行django程序

注意,如果在python2中有變化

  在python2中,需要注意在setting里面查看是否有添加novel,不然會找不到html的路徑,會出現下面個情況

 但在python3中還是要加上,雖然不加novel,能找到html文件,但找不到css其他的靜態文件

4)靜態文件的存放目錄,static

  a) 在app,也就是novel里面創建static文件夾

  b) 把css,js,和img圖片文件放入其中

 c)檢查前端html的文件導入靜態文件的路徑是否正確

 寫法1,不推薦。因為如果需要改靜態文件的路徑,后期維護麻煩

<link rel="stylesheet" href="static/css/style.css" />

2、寫法2

 

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css'%}" />
例如html文件
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主頁</title>
</head>
<body>
    {{ today }}
    <img src="{% static "img/1.jpg" %}">
</body>
</html>

 升級寫法

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主頁</title>
</head>
<body>
    {% if person_list %}
        {% for person in person_list %}
            <li>{{ person.account }}</li>
        {% endfor %}
    {% else %}
        <strong>沒有用戶</strong>
    {% endif %}
</body>
</html>
View Code

對應的模板文件

def index(request):
    #return HttpResponse('hello worlddddd')
    today = '今天天氣不好'
    content = {'today':today}
    return render(request,'index.html',content)
def index(request):
    #return HttpResponse('hello worlddddd')
    person_list = models.Person.objects.all()
    content = {'person_list':person_list}
    return render(request,'index.html',content)
六、創建html文件也django結合
1)創建dy.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>電影下載</title>
</head>
<body>
<li><a href="#">{{ name1 }}</a> </li>
<li><a href="#">{{ name2 }}</a> </li>
</body>
</html>

  2)定義路由

url(r'^dy',views.dy),

  3)定義視圖

def dy(request):
    names = {
        'name1':"戰狼2",
        'name2':"羞羞的鐵拳",
    }
    return render(request,'dy.html',context=names)

  4)訪問,http://127.0.0.1:8000/dy

六、讓django連接數據庫
1)在webapp文件夾里面找到settings.py
# 默認數據庫, sqlite3
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

# 使用的數據庫,mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'novel',
        'USER': 'novel',
        'PASSWORD':'helloworld',
        'RORT':'3306',
    }

2)從novel里面找到models.py文件。這是對數據庫增刪改查的文件

  1、models.py對沒有數據庫的情況下,可以映射成真實的數據庫

  a)寫上一個類,沒一個類,就相當於與一個表

from django.db import models

# Create your models here.

class Person(models.Model):
    account = models.CharField(max_length=15)
    passwd = models.CharField(max_length=15)

   b)尋找差異文件,執行 python3 manage.py makemigrations  

   c)創建表 python3 manage.py migrate  創建表

   d)admin.py注冊

       

  e)打開后台網頁展示了剛剛創建的數據

         

 

  2、models.py對已經存在數據庫的情況下,通過命令把數據庫映射成模型文件

 python manage.py inspectdb > novel/models.py  生成了models.py文件

3)視頻里面導入模型

  測試是否獲取到了數據

print(NovelCopy.objects.get(id=1).novelname)
#!/usr/bin/env python
#-*-coding: utf8-*-
from django.shortcuts import render
from django.http import HttpResponse

from novel.models import NovelCopy
# Create your views here.
def index(request):
    print(NovelCopy.objects.get(id=1).novelname)
    # NovelCopy 數據庫中的表
    # objects 類的一個方法,相當於進去查看表的內容的
    # get(id=1))  找到這個id
    # novelname 這個id下面的一個字段
    return render(request,'index.html')

 七、前端隨機生成數據庫內容,如下

  1)修改dy.html文件

{% for name in movies  %}
<li><a href="#">{{ name.title }}</a> </li>
{% endfor %}

  2)修改viems.py視圖文件,前提是數據庫連接好,並且操作數據庫的models.py也寫好

def dy(request):
    moviename = dymodels.objects.all[:10]  # 獲取數據庫的表里面的所有內容隨機抽取10
    names = {
        'movies':"moviename",
    }
    return render(request,'dy.html',context=names)

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM