Django框架寫電影查詢網站
前面介紹了Django的一些基本知識,下面我們運用這些知識寫一個電影查詢的網站。
建立專案
1.新建資料夾。電影
2.在電影目錄下,開啟終端,django-admin startproject myPro,新建工程專案。
3.cd到myPro檔案目錄下,新建app,django-admin startapp myApp
在工程專案myPro新建一個templates資料夾,並在此資料夾中新建index.html檔案
4.在工程專案myPro新建一個mystatic資料夾,將bootstraps的三個資料夾貼上進來。
5.settings檔案的設定。
首先註冊app。
設定templates路徑:
設定mystatic資料夾路徑。
STATICFILES_DIRS =( os.path.join(BASE_DIR,'myStatic'), )
以上三個設定都在settings.py檔案中。
工程專案所需準備的資料夾建立已經全部結束,如下圖所示:
操作
做網站,首先要準備的就是介面,這裡附上我所使用的介面。
一個本地的url:
https://api.map.baidu.com/location/ip?ak=KHkVjtmfrM6NuzqxEALj0p8i1cUQot6Z
一個查詢的url:
http://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&location=鄭州&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&output=json
首先先建立檢視,urls.py還有index.html的連線。
檢視views.py檔案中的程式碼如下:
from django.shortcuts import render # Create your views here. def myMovie(request): return render(request,'index.html')
urls.py檔案中的程式碼如下:
from django.contrib import admin from django.urls import path from myApp import views urlpatterns = [ path('admin/', admin.site.urls), path('movie/',views.myMovie), ]
因為只是測試連線,所以index.html檔案中沒有必要再寫程式碼。
來到工程專案檔案目錄下,python manage.py runserver啟動伺服器
顯示結果:
未報錯,就說明已經連線好了。下面我們要處理的就是把介面url中獲取的資料,傳送到index.html介面上。
來到views.py檔案中。
獲取本地的城市程式碼如下:
from django.shortcuts import render import requests from django.http import HttpResponse # Create your views here. def myMovie(request): # 獲取城市資訊,使用城市拼接url,請求電影資訊 # 首次進入,直接請求地址資訊 url = 'https://api.map.baidu.com/location/ip?ak=KHkVjtmfrM6NuzqxEALj0p8i1cUQot6Z' response = requests.get(url) # 將從請求中獲得的資訊轉換成json格式,便於解析 response_dic = response.json() city = response_dic['content']['address_detail']['city'] return HttpResponse(city)
重新整理瀏覽器的介面,顯示結果如下:
拼接所有城市的url,獲取電影資訊。程式碼如下:
# 拼接url,獲取全部電影資訊 movieUrl = 'http://api.map.baidu.com/telematics/v3/movie?qt=hot_movie&location={}&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&output=json'.format(city) # 請求電影資訊 movieData = requests.get(movieUrl).json() # 判斷電影資訊是否請求成功 if movieData['error'] == 0: all_movies = movieData['result']['movie'] # 將資料通過urls.py傳送給介面 context = { 'city':city, 'allMovies':all_movies, } else: context = { 'city': city, 'error':'無法獲取當前城市的電影資訊', } # 返回資料 return render(request,'index.html',context)
此時我們已經將資料返回到介面,介面的設計就看個人喜好了。
來到index.html 檔案。介面的設計,屬於前端知識,此處不再一一詳解,附上程式碼:
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"> <title>{{city}}即將上映電影</title> <style> section{ /*border:1px solid red;*/ height: 240px; position: relative; } img{ height: 150px; } .right{ display:inline-block; /*border:1px solid blue;*/ position:absolute; left: 200px; top:40px; } </style> </head> <body> <nav class="navbar navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse"> <span class="sr-only">切換導航</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">電影首頁</a> </div> <div> <ul class="nav navbar-nav"> <li class="active"><a href="#">加入我們</a></li> <li><a href="#">關於我們</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 聯絡我們 </a> </li> </ul> <!--跳轉到urls.py裡面的路徑/movie路徑--> <!--/movie 跳轉到views.py裡面的myMovie方法裡面--> <form action="/movie/" method="POST" class="navbar-form navbar-left" role="search"> {% csrf_token %} <div class="form-group"> <input name="city" type="text" class="form-control" placeholder="請輸入城市進行搜尋"> </div> <button type="submit" class="btn btn-default">提交按鈕</button> </form> </div> </div> </nav> <div class="container"> {% if error %} <h1>{{error}}</h1> {% endif %} {% for movie in allMovies %} <section class="col-lg-6 col-md-6 col-m-12"> <h4>{{movie.movie_name}}</h4> <img src="{{movie.movie_picture}}" alt=""> <div class="right"> <div>型別:{{movie.movie_type}}</div> <div>上映日期:{{movie.movie_release_date}}</div> <div>演員:{{movie.movie_starring}}</div> <div>評分:{{movie.movie_score}}</div> <div>標籤:{{movie.movie_tags}}</div> </div> </section> {% endfor %} </div> <script src="{% static 'js/jquery.js' %}"></script> <script src="{% static 'js/bootstrap.js' %}"></script> </body> </html>
工作到現在,我們已經完成了大多數的工作,現在就只剩下form表單提交別的城市的時候,我們也可以獲取相應城市的電影資訊,因為form表單在我們程式第一次進來的時候,預設是get請求,所以我們可以利用這一地,第二次進行提交的時候把獲取城市資訊的程式碼,用這個特點進行一次判斷。
在介面查詢框對應的form表單程式碼修改如下。
<form action="/movie/" method="POST" class="navbar-form navbar-left" role="search"> {% csrf_token %} <div class="form-group"> <input name="city" type="text" class="form-control" placeholder="請輸入城市進行搜尋"> </div> <button type="submit" class="btn btn-default">提交按鈕</button> </form>
來到views.py檔案中,將獲取城市的程式碼加上請求方式的判斷即可,程式碼如下:
if request.method == 'GET': url = 'https://api.map.baidu.com/location/ip?ak=KHkVjtmfrM6NuzqxEALj0p8i1cUQot6Z' response = requests.get(url) response_dic = response.json() city = response_dic['content']['address_detail']['city'] else: # 如果發現請求方式是post方式,就可以認為是form表單傳送的請求,那麼直接獲取form表單裡面name值為city標籤裡面輸入的內容 city = request.POST.get('city') # city = request.POST['city']
這樣就完成了所有的功能,最後介面顯示如下:
相關推薦
Django框架寫電影查詢網站
前面介紹了Django的一些基本知識,下面我們運用這些知識寫一個電影查詢的網站。 建立專案 1.新建資料夾。電影 2.在電影目錄下,開啟終端,django-admin startproject myPro,新建工程專案。 3.cd到myPro檔案目錄下,新建app,d
python3開發進階-Django框架中的ORM的常用操作的補充(F查詢和Q查詢,事務)
這樣的 env atomic 實例 In git 必須 TE setup 閱讀目錄 F查詢和Q查詢 事務 一、F查詢和Q查詢 1、F查詢 查詢前的準備 class Product(models.Model): name = mod
Django框架詳細介紹---ORM相關操作---select_related和prefetch_related函數對 QuerySet 查詢的優化
ger AS AI 出版社 獲得 har 有效 object 庫存 Django的 select_related 和 prefetch_related 函數對 QuerySet 查詢的優化 引言 在數據庫存在外鍵的其情況下,使用select_related()和pref
Django框架 之 查詢 Extra
django 所有 div line filter 對象 values 情況下 pla extra 1 2 extra(select=None, where=None, params=None, tables=None, order_by=N
用django框架開發一個B2C購物網站的基本流程和用到的知識點總結1
value 後端開發 .site elf pan 直接 基本 inter mobile 開發流程 開發模式采用前後端分離模式,作為後端開發人員我們只關註後端業務邏輯開發: 省略項目框架搭建文件的配置部分。。。。 一:用戶部分 在項目開發中我們要用到用戶模型類User,Dj
Django框架——查詢集QuerySet
目錄 1.概念 2.兩大特性 (1)惰性執行: (2)快取: 3.限制查詢集 1.概念 Django的ORM中存在查詢集的概念。 查詢集,也稱查詢結果集、QuerySe
三十九、python學習之Django框架(二):請求、URL路徑引數、查詢字串、請求體(表單,非表單)、請求頭
一、請求 1.flask中,利用HTTP協議想伺服器傳參的幾種途徑 1.1 提取URL的特定部分,可以在伺服器端的路由中用正則表示式擷取: 如:/weather/2018 //前端傳送請求: $.ajax({ url:'http://www.baidu.com/
潭州課堂25班:Ph201805201 django框架 第六課 模型類增刪改查,常用 的查詢矣查詢條件 (課堂筆記)
在檢視函式中寫入增刪改查的方法 增: 在 urls 中配置路徑 : 查: 1: 在後臺列印資料 在模型類中新增格式化輸出 : QuerySet,反回的是個物件,可以按索引聚會,用 for
用Django框架開發一個簡單的企業網站(四)
現在通過後臺可以新建文章分類,並且編輯儲存文章了;由於Django預設的大容量文字欄位是通過一個textarea作為輸入方式,所以我們還需要引入一個富文字編輯器,這裡我推薦KindEditor(http://kindeditor.net/demo.php),配置簡單,功能也齊全。 將下載好的
用Django框架開發一個簡單的企業網站(二)
現在已經搭建好了網站的基本框架,繼續完善後臺功能,既然要寫後臺,自然要準備好資料庫。 資料庫我選擇熟悉的mysql,用的navicat視覺化管理工具,這裡我建立了一個my_web的資料庫;建立好資料庫後在專案目錄下的settings.py檔案內配置資料庫連線資訊: DATABASE
用Django框架開發一個簡單的企業網站(一)
Python有許多不同的 Web 框架,Django是重量級選手中最有代表性的一位,許多成功的網站和APP都基於Django。 既然如此,那麼…… 老規矩,先安裝Django框架,我的Django版本: 安裝完成後在想儲存專案的目錄下執行命令,新建一個專案: djan
用Django框架開發一個簡單的企業網站(三)
接著之前的專案繼續深入開發,後臺和資料庫已經搞定,現在可以寫我們網站的功能了;就寫一個最簡單的功能,釋出企業新聞。開啟app內的models.py檔案,寫兩個資料模型類: from django.db import models class NewsClass(models.Model)
Python-Django框架的select_related 和 prefetch_related函式對 QuerySet 查詢的優化
概念: select_related()當執行它的查詢時它沿著外來鍵關係查詢關聯的物件資料。它會生成一個複雜的查詢並引起效能的消耗,但是在以後使用外來鍵關係時將不需要資料庫查詢。 prefetch_related()返回的也是QuerySet,它將在單個批處理中自動檢索每個
Python的Django框架-資料庫查詢(增刪改查)
建立專案 django-admin startproject django_model 建立應用 python manage.py startapp model 配置應用 model, 編輯 django_model/settings.py
[原始碼和文件分享]基於Python的Django框架實現的中式快餐廳管理資訊系統網站
1 初步調研 隨著餐飲業的連鎖和國外餐飲巨頭的進入,餐飲業的競爭將越來越激烈:要想在競爭中處於不敗之地,必須在管理、服務等方面提高服務管理意識。面對當前餐飲業普遍的產業化程度低,管理手段、管理技術落後等問題,使用計算機管理在很大程度上可以幫助餐飲企業克服這些困難。計算機管理系統可以提高餐飲企業的
四十三、python學習之Django框架(三):資料庫,資料庫配置,定義模型,shell工具,資料庫操作,查詢集
一、資料庫: 1. ORM框架: object relation mapping: 物件關係對映,在ORM框架中,它幫我們把類和資料表進行了一個對映,可以讓我們通過類和類物件就能夠操作它所對應的表格中的資料.ORM框架還有一個功能,它可以根據我們設計的類自動幫
python開發電影查詢系統(二)—Django展示
上篇部落格講了python爬取電影資訊的後臺資料處理,現在我們將Django前端顯示。 如果對Django還不熟的朋友可以先找資料熟悉一下。 這裡我們直接講。 1.安裝好Django後,找到你的工作目錄,建立好一個專案find_film: dja
Django框架(模型層:單表查詢)
建立表 1.建立模型 建立名為book的app,在book下的models.py中建立模型 from django.db import models # Create your models here. class Book(models.Model): id = models.Au
電商網站(Django框架)—— 大綱內容與基本功能分析
1. 專案架構 2. 資料庫表結構 3. 資料庫讀寫分離 4. Django讀寫分離配置 新建utils/db_router.py 課後閱讀資料 5. 使用者認證模型 注意: AUTH_USER_MODEL配置引數要在第一次遷移資
Django框架電商網站開發流程
一、配置 1 建立專案和應用 配置專案setting.py(應用,templates路徑,資料庫,STATICFILES_DIRS)配置專案urls.py,namespace起名最好和應用名一樣,不容易混淆 2 配置應用 在每個應用中建立urls.py同時對應該應用