栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

创建Django项目

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

创建Django项目

用的是vscode

  1. 新建project:创建一个文件夹,在vscode中cd到文件夹
    在当前文件夹下创建通过以下命令,创建了test_ajax2的项目,项目名=文件夹名=test_ajax2
django-admin startproject test_ajax2
  1. 创建app:cd到项目文件夹下(manage.py所在文件夹)
    以下命令创建了名叫app1的app
python manage.py startapp app1
  1. 设置settings.py

    3.1 注册app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app1.apps.App1Config',
]


加入最后一行:[app名字].[apps.py的名字].[apps.py里的一个class名]

3.2 更改默认数据库为mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 默认
        'NAME': 'xxxxxxxx',  # 连接的数据库
        'HOST': 'localhost',  # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'xxxxxx',  # mysql的用户名
        'PASSWORD': 'xxxxxx'  # mysql的密码

    }
}

3.3 添加静态文件路径【随便找地方插入下面的代码,注意要import os】

import os

STATIC_URL = '/static/'

STATICFILES_DIRS = ( 

os.path.join(BASE_DIR, "static"), 

) 

同时在app1同级路径下创建static文件夹

文件夹里的内容


  1. 通过已有数据库创建models
    可参考这篇

https://blog.csdn.net/nishino123/article/details/124861766

  1. 创建form
    注意几点:
    1.导入model和form,继承forms.modelform
    2. Meta类引入model表格
    3. 定义fields
    4. 定义样式
from attr import field
from app1 import models
from django import forms

class fm1(forms.ModelForm):
    class Meta:
        model = models.Ytdor
        fields = ['region_id','branch_id','lislio_id','kam_id']
    def __init__ (self,*args,**kwargs):
        super().__init__(*args,**kwargs)  #初始化⽗类⽅法
        print(self.fields)
        for field in self.fields.values():
            field.widget.attrs = {'class':'form-control'}     #定义样式
            field.required = False

  1. 创建路由
    注意要从app1导入views
from django.contrib import admin
from django.urls import path
from app1 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]
  1. 路由函数
    常用的导入:导入form,model,json,render,json_dump
from django.http import HttpResponse
from django.shortcuts import render
from matplotlib.font_manager import json_dump
# Create your views here.
import json
from sympy import Sum
from app1 import forms,models
  1. html文件
    创建templates文件夹,再里面创建html文件
    注意几点:
    1. 头文件引入静态文件: {% load static %}
    2. 样式等参考下面路径写法

    
    
    
    Document
    {% load static %}
    

尾部js引入参考以下



  1. 传数据&ajax
    注意几点:
    1. 表单要有{% csrf_token %}
    2. 表单可以定义post或get方法
    3. views函数用装饰器@csrf_exempt取消csrf【用ajax会报错】
    4. model查询条件可传递字models.Ytdor.objects.filter(**dc)
    5. 聚合函数table.values(‘branch’).annotate(s_ormv=Sum(“ormv”)).values(“branch”,“s_ormv”)【报错了,找到问题再更新】
    6. 后端可以render往前端传递字典
    7. 往前端传json数据,可以httpresponse,json_dumps(自典),不要同时传字典和json_dumps.
    8. 前端接受数据,再js里要{{ |safe}}
    9. ajax的data是往后端传的数据,可以根据get或post,使用request.POST/GET.get(key)来取得
      10.success function(接受的是后端往前传的数据),这里是一个参数,可以随便写,把参数用 JSON.parse(参数)转换一下,变成类似字典对象的形式,可以用点来取值
@csrf_exempt
def index(request):

    test_ajax = {"a":1,"b":"2"}
    form = forms.fm1()
    table_all = models.Ytdor.objects.all()

    dc={"region_id":1}
    
    table = models.Ytdor.objects.filter(**dc)
    
    table_sum = table.values('branch').annotate(s_ormv=Sum("ormv")).values("branch","s_ormv")
    
    #oobj = list(table_sum)
    #print(oobj)
    #test_ajax["data"] = oobj
    #print(test_ajax["data"])

    if request.method == "GET":
        return render(request,"index.html",{"test_ajax":json.dumps(test_ajax),"form":form,'table':table})
    else:
        print(request.POST.get("front_to_end"))
        return HttpResponse(json.dumps(test_ajax))
    
{% csrf_token %} {% for field in form%} {{field}} {% endfor%}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号