• Python学习---Django的基础操作180116


    Django创建数据库操作

    django流程之model实例

    settigs.py:更改Django2.0.1的配置,更新为之前的路径配置

    'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 设置templates的路径为Django以前版本
    # 'DIRS': [],      # 注释掉该行,此为Django 2.0.1最新版本
    # 'django.middleware.csrf.CsrfViewMiddleware',

    views.py

    # Create your tests here.
    from django.shortcuts import render, HttpResponse
    from blog import models
    def userInfo(request):
        # 这里需要判断前台数据提交的方法是POST还是GET的[大写]
        if request.method == "POST":
            get_username = request.POST.get("username", None)
            get_sex = request.POST.get("sex", None)
            get_email = request.POST.get("email", None)
            models.UserInfo.objects.create(   # 进行ORM映射,同时Insert数据到数据库
                username=get_username,
                sex=get_sex,
                email=get_email
            )
        user_list = models.UserInfo.objects.all() # 获取数据库里面的数据
        print(user_list)
        return render(request, 'index.html', {"user_list": user_list})  # 用{}传递一个对象给前端

    mysite2/urls.py

    from django.contrib import admin
    from django.urls import path
    from blog import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path(r'userInfo/', views.userInfo),  # 将路径名跟函数进行映射
    ]

    models.py :创建ORM映射模版

    from django.db import models
    class UserInfo(models.Model):
        username = models.CharField(max_length=64)  # 创建数据库字段,并设置长度为64k
        sex = models.CharField(max_length=64)
        email = models.CharField(max_length=64)

    templates/index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <form method="post" action="/userInfo/" name="userInfo">
            <p>姓名<input type="text" name="username"></p>
            <p>性别<input type="text" name="sex"></p>
            <p>邮箱<input type="text" name="email"></p>
            <p><input type="submit" value="提交"></p>
        </form><hr><hr>
        <table border="1">
            <tr>
                <th>姓名</th>
                <th>性别</th>
                <th>邮箱</th>
            </tr>
            {% for i in user_list %}    {#Django里面封装的模版语法,用于for循环#}
                <tr>
                    {# 这里是变量,所以需要2个{}来进行变量引用[规定的] #}
                    <th>{{ i.username }}</th>  {# 这里类似字典的取值 i[username] #}
                    <th>{{ i.sex }}</th>       {# 这里类似i[sex] #}
                    <th>{{ i.email }}</th>     {# 这里类似i[email] #}
                </tr>
            {% endfor %}                {# 注意结束for循环 #}
        </table>
    </body>
    </html>

    创建数据库以及同步数据库数据

    生成同步数据库的脚本:python manage.py makemigrations 

    同步数据库:  python manage.py migrate  

    image

    注意1:如果安装完成后打不开DB数据库,是因为没有安装连接数据库的jar包,PyCharm可以帮助我们进行安装

    image

    注意2:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。  

    settigs.py: 默认的数据库

    image

    注意3:重启Django服务,查看页面数据

    image

    django之登录默认的admin界面

    创建项目好了以后我们会发现有一个默认的admin的函数,对应的就有个URL的地址:http://127.0.0.1:8080/admin/

    当我们访问http://127.0.0.1:8080/admin/时,会出现:

    image

    我们需要为进入这个项目的后台创建超级管理员:python manage.py createsuperuser,设置好用户名和密码后便可登录啦!

    后台输入命令创建用户:python manage.py createsuperuser

    image

    image

    其他参考

    清空数据库:

    python manage.py  flush


          查询某个命令的详细信息:

    django-admin.py  help  startapp


           admin 是Django 自带的一个后台数据库管理系统。
    终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用

    python manage.py 

    启动当前项目的django交互界面 :

    python manage.py  shell
    

    注意:这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

    image

  • 相关阅读:
    2018.11.16 RX- IC
    第15.29节 PyQt(Python+Qt)入门学习:containers容器类部件QScrollArea滚动区域详解
    PyQt(Python+Qt)学习随笔:QTabWidget部件选项卡可用状态访问方法isTabEnabled、setTabEnabled
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件的tabBar、count、indexOf方法
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件的currentWidget和widget方法
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件移除选项卡的removeTab和clear方法
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件添加选项卡的addTab和insertTab方法
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件设置tabsClosable后不能关闭选项卡的原因
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件的documentMode属性作用
    PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件概述和属性介绍
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9397702.html
Copyright © 2020-2023  润新知