下载桌面端
进入网页版

登录/ 注册

万兴科技(300624.SZ)集团成员

django思维导图

立即使用

django基本介绍安装第一个项目:mvc优势:1.开发快,部署方便,重用性高2.强大的数据库功能,强大的后台MTV模型M:数据库操作的地方T(templa):按页面展示给用户v:表示视图,负责业务逻辑1.输入以下命令进行检查: import django django.get_version()2.创建新项目:django-admin.py startproject 项目名字项目已启动,访问地址为http://127.0.0.1:8000/。django-admin startproject 项目名字启动项目:python manage.py runserver 127.0.0.1:8000视图和url配置:新建一个views.py文件绑定路由和视图from django.http import HttpResponse def hello(request):    return HttpResponse("Hello world ! ")from django.conf.urls import urlfrom . import viewsurlpatterns = [    url(r'^$', views.hello),]也可以写绝对路径:from django.urls import path from . import viewsurlpatterns = [    path('hello/', views.hello),]模板在项目目录底下创建 templates 目录并建立 runoob.html文件写入HTML内容:代码<h1>{{ hello }}</h1>修改环境(settings ,为了找到HTML文件,修改 TEMPLATES 中的 DIRS 为 [os.path.join(BASE_DIR, 'templates')]修改views.py文件,修改路径,向模板提交数据return render(request, 'runoob.html', context)修改urls.py,添加路由路径,方便网页上更好的找到文件,执行views.py中的执行路径urlpatterns = [    path('runoob/', views.runoob),]在项目根目录下创建 statics 目录。再访问访问 http://127.0.0.1:8000/runoob在 statics 目录下创建 css 目录,js 目录,images 目录,plugins 目录, 分别放 css文件,js文件,图片,插件。在 settings 文件的最下方配置添加以下配置:2、在 settings 文件的最下方配置添加以下配置:STATIC_URL = '/static/' # 别名 STATICFILES_DIRS = [     os.path.join(BASE_DIR, "statics"), ]模板继承templates 目录中添加 base.html 文件<body>    <h1>Hello World!</h1>    <p>菜鸟教程 Django 测试。</p>    {% block mainbody %}       <p>original</p>    {% endblock %}</body>放最上面********{%extends "base.html" %} {% block mainbody %}<p>继承了 base.html 文件</p>{% endblock %}模型Django 模型使用自带的 ORM。数据库配置定义模型使用 ORM 的好处:提高开发效率。不同数据库可以平滑切换。使用 ORM 的缺点:ORM 代码转换为 SQL 语句时,需要花费一定的时间,执行效率会有所降低。长期写 ORM 代码,会降低编写 SQL 语句的能力。手动创建按数据库在settings.py修改数据库配置DATABASES = {     'default':     {         'ENGINE': 'django.db.backends.mysql', # 数据库引擎'NAME': 'runoob', # 数据库名称        'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1  'PORT': 3306, # 端口         'USER': 'root', # 数据库用户名        'PASSWORD': '123456', # 数据库密码    }  }连接数据库# 在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置 import pymysql pymysql.install_as_MySQLdb()django-admin.py startapp app名字修改 models.py 文件写入类名,撞见数据库表,例如:class Test(models.Model):    name = models.CharField(max_length=20)修改配置settings.py在INSTALLED_APPS添加app在命令行中创建表,自动生成在数据库中(重要)python manage.py migrate  #创建表结构       python  manage.py makemigrations app名字(建议都用一样的,要不容易乱,哈哈) #让django知道我们有一些变更         python manage.py migrate app名字   #创建表结构图形化界面创建数据库操作修改urls,py文件,添加路由路径添加数据需要先创建对象,然后再执行 save 函数,相当于SQL中的INSERT# 数据库操作def testdb(request):    test1 = Test(name='runoob')    test1.save()    return HttpResponse("<p>数据添加成功!</p>")查询语句的多种方式# 数据库操作def testdb(request):    # 初始化 response = "" response1 = ""           # 通过objects这个模型管理器的all()获得所有数据行    list = Test.objects.all()            # filter相当于SQL中的WHERE,可设置条件过滤结果    response2 = Test.objects.filter(id=1)         # 获取单个对象    response3 = Test.objects.get(id=1)         # 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2;    Test.objects.order_by('name')[0:2]        #数据排序    Test.objects.order_by("id")        # 上面的方法可以连锁使用    Test.objects.filter(name="runoob").order_by("id")        # 输出所有数据    for var in list:        response1 += var.name + " "    response = response1    return HttpResponse("<p>" + response + "</p>")更新数据,修改数据可以使用 save() 或 update():# 数据库操作def testdb(request):    # 修改其中一个id=1的name字段,再save,相当于SQL中的UPDATE    test1 = Test.objects.get(id=1)    test1.name = 'Google'    test1.save()        # 另外一种方式    #Test.objects.filter(id=1).update(name='Google')        # 修改所有的列    # Test.objects.all().update(name='Google')        return HttpResponse("<p>修改成功</p>")删除数据delete()方法# 数据库操作def testdb(request):    # 删除id=1的数据    test1 = Test.objects.get(id=1)    test1.delete()        # 另外一种方式    # Test.objects.filter(id=1).delete()    # 删除所有数据    # Test.objects.all().delete()       return HttpResponse("<p>删除成功</p>")视图函数请求对象: HttpRequest 对象(简称 request 对象)响应对象:HttpResponse 对象1、GETget():返回字符串,有相同的键,就把所有的值放到对应的列表里。2、POST常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。3、body   在处理非 HTTP 形式的报文时非常有用,例如:二进制图片、XML、Json 等。4、path获取 URL 中的路径部分,数据类型是字符串。5、method获取当前请求的方式,数据类型是字符串,且结果为大写。HttpResponse(): 返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有 html 标签,也可以渲染。render(): 返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。子redirect():重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。
33
2
2
发布时间: 2021-05-14