基于Django的区市显示项目

jquery框架中提供.ajax . g e t .get .get.post方法,用于进行异步交互,由于Django中默认使用CSRF约束,推荐使用$.get
1)将jquery文件拷贝到static/js/目录下。
在这里插入图片描述
2)打开booktest/views.py文件,定义视图area,用于显示下拉列表。

def areas(Request):
    '''省市县显示'''
    return render(Request , 'booktest/areas.html')

3)打开booktest/urls.py文件,配置url。

url(r'^areas$',views.areas),

4)在templates/booktest/目录下创建area.html。

首先是html的部分

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>省市县选择案例</title>
    <script src="/static/js/jquery-1.12.4.min.js"></script>
    <script>
        $(function (){
            // 发起一个ajax请求/prov获取所有省级地区的信息
            // 获取信息用get
            // 设计信息修改用post
            // 获取prov下拉列表框
            prov = $('#prov')
            $.get('/prov',function (data){
                // 回调函数
                // res 数组获取每一个元素:[地区id,地区标题]
                res = data.data
                // 遍历res数组
                /* 换一种方式
                for(i=0; i<res.length; i++){

                    id = res[i][0]
                    atitle = res[i][1]
                    option_str = '<option value="'+id+'">'+atitle+'</option>'
                    // 向prov中加入下拉列表框
                    prov.append(option_str)
                }*/
                $.each(res, function (index, item) {
                    id = item[0]
                    atitle = item[1]
                    option_str = '<option value="'+id+'">'+atitle+'</option>'
                    // 向prov中加入下拉列表框
                    prov.append(option_str)
                })
            })


            // 绑定prov下拉列表的change事件
            prov.change(function (){
                // 发起一个ajax请求 /city获取省下面市的信息
                // 获取点击省的id
                prov_id = $(this).val()
                $.get('/city'+prov_id,function (data){
                    // 处理回调函数
                    res = data.data
                    // 获取city下拉列表框
                    city = $('#city')
                    // 清空列表框
                    dis = $('#dis')
                    // 清空列表框
                    dis.empty().append('<option value="">---请选择县---</option>')
                    city.empty().append('<option value="">---请选择市---</option>')
                    $.each(res, function (index, item) {
                    id = item[0]
                    atitle = item[1]
                    option_str = '<option value="'+id+'">'+atitle+'</option>'
                    // 向prov中加入下拉列表框
                    city.append(option_str)
                })
                })

            })

            // 绑定city下拉列表框事件
            $('#city').change(function (){
                // 发起一个ajax请求 /city获取省下面市的信息
                // 获取点击省的id
                city_id = $(this).val()
                $.get('/dis'+city_id,function (data){
                    // 处理回调函数
                    res = data.data
                    // 获取city下拉列表框
                    dis = $('#dis')
                    // 清空列表框
                    dis.empty().append('<option value="">---请选择县---</option>')
                    $.each(res, function (index, item) {
                    id = item[0]
                    atitle = item[1]
                    option_str = '<option value="'+id+'">'+atitle+'</option>'
                    // 向prov中加入下拉列表框
                    dis.append(option_str)
                })
                })

            })
        })
    </script>
</head>
<body>
<select name="" id="prov">
    <option value="">---请选择省---</option>
</select>
<select name="" id="city">
    <option value="">---请选择市---</option>
</select>
<select name="" id="dis">
    <option value="">---请选择县---</option>
</select>
</body>
</html>

5)运行服务器,在浏览器中输入如下网址:

http://127.0.0.1:8000/area/

6)打开booktest/views.py文件,定义视图prov,用于获取省信息。

def prov(request):
    '''获取省级行政区信息'''
    areas = AreaInfo.objects.filter(aParent__isnull=True)
    # 遍历areas并拼接json数据:标题,id
    areas_list = []
    for area in areas:
        areas_list.append((area.id,area.atitle))
    return JsonResponse({'data':areas_list})

7)打开booktest/urls.py文件,配置url。
8)在浏览器中输入如下网址。

在这里插入图片描述
以此类推配置市县
效果图
在这里插入图片描述

当然,我可以帮你写一个基于 Django 的查重项目。首先,你需要安装 Django。请确保你已经安装了 Python 和 pip。 1. 创建项目和应用程序 打开终端并导航到你想要创建项目的目录。然后执行以下命令来创建一个新的 Django 项目: ``` django-admin startproject plagiarism_checker ``` 进入项目目录: ``` cd plagiarism_checker ``` 创建一个名为 `checker` 的应用程序: ``` python manage.py startapp checker ``` 2. 配置数据库 默认情况下,Django 使用 SQLite 数据库。如果你想使用其他数据库(如 MySQL 或 PostgreSQL),请在 `settings.py` 文件中进行相应的配置。 3. 定义模型 打开 `checker/models.py` 文件,并定义一个名为 `Document` 的模型。这个模型将表示要检查的文件。 ```python from django.db import models class Document(models.Model): title = models.CharField(max_length=200) file = models.FileField(upload_to='documents/') def __str__(self): return self.title ``` 4. 迁移数据库 在终端中运行以下命令,创建数据库表: ``` python manage.py makemigrations python manage.py migrate ``` 5. 创建视图 打开 `checker/views.py` 文件,并添加以下代码: ```python from django.shortcuts import render, redirect from .models import Document def upload_document(request): if request.method == 'POST': title = request.POST['title'] file = request.FILES['file'] document = Document(title=title, file=file) document.save() return redirect('check_document', document_id=document.id) return render(request, 'checker/upload_document.html') ``` 6. 创建模板 在 `checker/templates/checker` 目录下创建一个名为 `upload_document.html` 的文件,并添加以下内容: ```html <form method="post" enctype="multipart/form-data"> {% csrf_token %} <label for="title">Title:</label> <input type="text" name="title" required> <br> <label for="file">File:</label> <input type="file" name="file" required> <br> <input type="submit" value="Upload"> </form> ``` 7. 添加 URL 打开 `plagiarism_checker/urls.py` 文件,并添加以下代码: ```python from django.urls import path from checker.views import upload_document urlpatterns = [ path('upload/', upload_document, name='upload_document'), ] ``` 8. 运行服务器 在终端中运行以下命令,启动 Django 开发服务器: ``` python manage.py runserver ``` 9. 访问应用程序 在浏览器中访问 `http://localhost:8000/upload/`,你将看到一个上传文件的界面。上传一个文件后,你将被重定向到一个页面,显示上传的文件的 ID。 这只是一个简单的示例,你可以根据你的需求对其进行扩展和优化。希望这可以帮助到你开始构建你的查重项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值