Django城市信息查詢功能的實(shí)現(xiàn)步驟
前言
基于 Pythgo的 Django 框架,編程實(shí)現(xiàn)一個 WEB 程序,為用戶提供 城市信息查詢功能。用戶可輸入一個城市名,輸出其所在省份名稱和郵編 等信息。例如,輸入“桂林市”,輸出“廣西壯族自治區(qū)”和“541000”等 城市相關(guān)信息。
數(shù)據(jù)準(zhǔn)備階段


版本推薦
本教程的django為4.0.3,python版本為3.10.4,推薦使用,如果不是這些版本的,django,python會出現(xiàn)錯誤!

項(xiàng)目實(shí)現(xiàn)階段
Django 工程的建立
在桌面上新建立一個django文件夾,在vscode的終端打開此文件夾,在終端中創(chuàng)建工程項(xiàng)目,如:
django-admin startproject GongCheng
可以看到左側(cè)資源管理器左側(cè)出現(xiàn)了GongCheng


并在終端運(yùn)行manager.py文件:
Desktop\django\GongCheng> python manage.py runserver
為項(xiàng)目添加兩個App,一個作為主頁,一個作為省份查詢:
PS C:\Users\用戶\Desktop\django\GongCheng> python manage.py startapp homeApp PS C:\Users\用戶\Desktop\django\GongCheng> python manage.py startapp aboutApp
添加完成后面,對應(yīng)左邊資源管理器:

在項(xiàng)目目錄下,創(chuàng)建static文件,在此不便多述,上文件鏈接鏈接:點(diǎn)擊這里下載

路由的配置及訪問
在項(xiàng)目路由下的settings.pu文件中的INSTALLED_APPS[ ]輸入兩個app的名稱:

渲染界面
完成上面的配置后面,打開homeApp文件夾的views.py,使其通過代碼返回頁面,代碼入下:
from django.shortcuts import render
from django.shortcuts import HttpResponse
# Create your views here.
def home(request):
return render(request, 'home.html')然后在homeApp下建立templates文件夾,在該文件夾中建立home.html:

并且在html中輸入以下代碼,使文件與static文件進(jìn)行連接,獲取css,js樣式:
注:有一些人的Django的版本是2.2.4的,小編的Django版本是最新版本的,所以2.2.4版本的同學(xué),需要在HTML的{% load static %}上改為{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>首頁</title>
<link href="{% static 'css/bootstrap.css' %}" rel="stylesheet">
<link href="{% static 'css/style.css' %}" rel="stylesheet">
<script src="{% static 'js/jquery.min.js' %}"></script>
<script src="{% static 'js/bootstrap.min.js' %}"></script>
</head>
<body>
</body>
</html>設(shè)置網(wǎng)站根訪問路徑,在項(xiàng)目根目錄找到urls.py找到urlpatterns字段,然后添加首頁路由:
from django.contrib import admin#已經(jīng)有了
from django.urls import path#已經(jīng)有了
from homeApp.views import home
from django.conf.urls import include
urlpatterns = [
path('admin/', admin.site.urls),
path('',home,name='home'),
path('aboutApp/',include('aboutApp.urls')),
]在aboutApp的目錄下創(chuàng)建urls.py,再在aboutApp\urls.py里面添加
from django.urls import path
from . import views
app_name = 'aboutApp'
urlpatterns = [
path('about/',views.about,name='about'),
]使app_name擁有名稱。
打開aboutApp\views.py,輸入以下代碼:
from django.shortcuts import render
from django.shortcuts import HttpResponse
def about(request):
html='<html><body>聽我說謝謝你</body></html>'
return HttpResponse(html)然后在終端輸入:python manage.py runserver 運(yùn)行程序,打開出來的鏈接
主頁效果:

aboutApp頁面效果:

最后,在根目錄的setting.py的INSTALLED_APPS[ ]上方的ALLOWED_HOSTS = [ ]添加 ‘*’ :
ALLOWED_HOSTS = ['*',]
添加富文本模型
富文本的安裝:需要手動安裝下載包,下載網(wǎng)址:https://github.com/twz915/DjangoUeditor3/ 然后安裝,終端用cd定義到DjangoUeditor3-master,然后輸入以下命令即可完成安裝:
python manage.py install
需要將DjangoUeditor3-master項(xiàng)目中的DjangoUeditor文件夾加入到當(dāng)前GongCheng項(xiàng)目根目錄中:
在項(xiàng)目根目錄下添加DjangoUeditor

添加好文件后,在項(xiàng)目路由下的settings.pu文件中的INSTALLED_APPS[ ]添加DjangoUeditor

在項(xiàng)目根目錄找到urls.py找到urlpatterns字段,然后添加富文本路由:
path('ueditor/',include('DjangoUeditor.urls')),在此,完成了富文本的配置
創(chuàng)建城市與省份模型
打開aboutApp的models.py文件,在該文件中添加省份模型(Province)
from django.db import models
from DjangoUeditor.models import UEditorField
from django.utils import timezone
class Province(models.Model):
name = models.CharField(max_length=10,verbose_name='省份')
capital= models.CharField(max_length=8, verbose_name='首府')
concise=UEditorField(u'省份簡介',default='',width=800,height=300,)
class Meta:
verbose_name ='數(shù)據(jù)'
verbose_name_plural ='數(shù)據(jù)'
def __str__(self):
return self.name
class City(models.Model):
province = models.ForeignKey(Province,related_name='city',verbose_name='省份',on_delete=models.CASCADE)
name = models.CharField(max_length=10,verbose_name="城市")
mail = models.IntegerField(null=False,verbose_name='郵政編碼')
concise=UEditorField(u'城市簡介',default='',width=800,height=300)
class Meta:
verbose_name ='城市數(shù)據(jù)'
verbose_name_plural ='城市數(shù)據(jù)'然后在根目錄的setting.py添加以下代碼:
import os STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), ) MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,'media/')
然后在終端輸入:python manage.py makemigrations
回車會看到模型已經(jīng)建立

繼續(xù)在終端輸入;python manage.py migrate
回車:

模型就在后端了。 接下來我們注冊超級管理員用戶,就可以在后臺管理系統(tǒng)看到模型了。
后臺管理系統(tǒng)
因?yàn)閐jango自己會建立后臺管理系統(tǒng),所以我們只需要在注冊創(chuàng)建管理員用戶賬號:
python manage.py createsuperuser
回車后出現(xiàn)了頁面,按照以下輸入即可:Username(管理員的賬號,自己隨意取)

通過 http://127.0.0.1:8000/admin/ 進(jìn)入頁面,如果打不開,請?jiān)诮K端輸入python manage.py runserver 運(yùn)行程序

我們通過賬號密碼進(jìn)入后臺管理系統(tǒng)后,我們是看不到模型的,我們需要在aboutApp中的admin.py文件,編輯以下代碼:
from django.contrib import admin
from .models import *
class Cityline(admin.StackedInline):
model = City
extra = 1
class ProvinceAdmin(admin.ModelAdmin):
inlines = [Cityline,]
admin.site.register(Province, ProvinceAdmin)
admin.site.site_header='地市數(shù)據(jù)'
admin.site.site_title='地市數(shù)據(jù)'刷新后臺界面,我們可以看到模型已經(jīng)出來了:

我們可以瀏覽一下我們的界面,內(nèi)部已經(jīng)覆蓋了一對多的模型,富文本文件:


我們可以后臺輸入數(shù)據(jù),然后傳到對應(yīng)頁面啦。
總結(jié)
到此這篇關(guān)于Django城市信息查詢功能的文章就介紹到這了,更多相關(guān)Django城市信息查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas中按行或列的值對數(shù)據(jù)排序的實(shí)現(xiàn)
本文主要介紹了pandas中按行或列的值對數(shù)據(jù)排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Python字符串本身作為bytes進(jìn)行解碼的問題
這篇文章主要介紹了解決Python字符串本身作為bytes進(jìn)行解碼的問題,文末給大家補(bǔ)充介紹了,Python字符串如何轉(zhuǎn)為bytes對象?Python字符串和bytes類型怎么互轉(zhuǎn),需要的朋友可以參考下2022-11-11
django 發(fā)送郵件和緩存的實(shí)現(xiàn)代碼
這篇文章主要介紹了django 發(fā)送郵件和緩存的實(shí)現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
Python+selenium破解拼圖驗(yàn)證碼的腳本
很多網(wǎng)站在登錄或者注冊時都會遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下2022-02-02
Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例
這篇文章主要介紹了Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能,結(jié)合完整實(shí)例形式分析了Python3.5實(shí)現(xiàn)計(jì)算器功能的正則、字符串及數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Python網(wǎng)絡(luò)請求之Requests庫的高級功能運(yùn)用
在這篇文章中我們將進(jìn)一步深入學(xué)習(xí)Requests庫的高級功能,包括處理重定向,設(shè)置超時,處理大文件以及錯誤和異常處理,需要的朋友可以參考下2023-08-08
Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)
這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
pandas DataFrame 刪除重復(fù)的行的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas DataFrame 刪除重復(fù)的行的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

