Django学习记录

举报
建帅小伙儿 发表于 2022/09/25 02:24:13 2022/09/25
【摘要】 Django应用框架 **安装Django**:pip install django -i http://pypi.douban.com/simple --trusted-host pypi.douban.com**创建Django项目**:django-admin startproject DjangoDemo1**文件目录...

Django应用框架


   
  1. **安装Django**:
  2. pip install django -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  3. **创建Django项目**:
  4. django-admin startproject DjangoDemo1
  5. **文件目录层级说明**:
  6. manage.py:一个命令行工具,可以使我们用多种方式对Django项目进行交互
  7. **project项目目录**:
  8. init.py:一个空文件,它告诉python这个目录应该被看做一个python包
  9. setting.py:项目的配置文件
  10. urls.py:项目的URL声明
  11. wsgi.py:项目与WSGI兼容的Web服务器入口
  12. **windows安装mysql:**
  13. 下载地址:https://dev.mysql.com/downloads/mysql/
  14. 跳过登录直接下载
  15. **环境变量**:
  16. 变量名:MYSQL_HOME
  17. 变量值:E:\mysql-5.7.20-winx64
  18. 以管理员身份运行cmd
  19. 进入D:\mysql-8.0.12-winx64\bin
  20. 执行:mysqld --initialize-insecure --user=mysql #会生成目录下生成data目录
  21. 管理员运行:mysqld -install
  22. 启动服务:
  23. net start MySQL
  24. 连接:
  25. mysql -u root -p

修改setting.py文件:


   
  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'sunck',
  5. 'USER': 'root',
  6. 'PASSWORD': '',
  7. 'HOST': 'localhost',
  8. 'PORT': '3306'
  9. }
  10. }

创建:app01
执行 python manage.py startapp app01
在setting中奖app01应用加入INSTALL_APPS选项中


   
  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'app01'
  9. ]

创建模型:model.py文件中


   
  1. class Grades(models.Model):
  2. gname = models.CharField(max_length=20)
  3. gdate = models.DateTimeField()
  4. ggirlnum = models.IntegerField()
  5. gboynum = models.IntegerField()
  6. isDelete = models.BooleanField(default=False)
  7. class Students(models.Model):
  8. sname = models.CharField(max_length=20)
  9. sgender = models.BooleanField(default=True)
  10. sage = models.IntegerField()
  11. scontent = models.CharField(max_length=20)
  12. isDelete = models.BooleanField(default=False)

关联外键
sgrade = models.ForeignKey(“Grades”)

生成数据表在数据库中
生成迁移文件:python manage.py makemigrations #在migrations目录下生成一个迁移文件
执行迁移:python manage.py migrate
执行完之后去数据库中查询数据,发现表已经生成。测试数据操作
进入python shell : python manage.py shell
引入一些包:
from app01.models import Grades,Students
from django.utils import timezone
from datetime import *查询所有数据
Grades.object.all()
添加数据:创建一个模型类的对象实例
创建对象


   
  1. grade1 = Grades()
  2. grade1.gname = "gaojianshuai"
  3. grade1.gdate = datetime(year=2019,month=12,day=9)
  4. grade1.ggirlnum = 3
  5. grade1.gboynum=30
  6. grade1.save()
  7. grade2.gname = "linjiayin"
  8. grade2.ggirlnum = 4
  9. grade2.gboynum=13
  10. grade2.gdate = datetime(year=2020,month=1,day=25)
  11. grade2.save()

查看某个对象:
Grades.objects.all()
Grades.objects.get(pk=1)
Grades.objects.get(pk=2)
grade2
修改某个属性:模型对象.属性 = 新值
grade2.ggirlnum = 555
grade2.save()
删除数据:
模型对象.delete() grade2.delete()
启动服务器:
python manage.py runserver
admin站点管理:

内容发布:负责添加、修改、删除内容

配置admin应用:在setting中的INSTALL_APPS中添加’django.contrib.admin’,默认是已经添加好的

创建管理员用户:python manage.py createsuperuser

账号密码:sunck 1234567890

访问:127.0.0.1:8000
127.0.0.1:8000/admin界面汉化
在setting文件中修改如下
LANGUAGE_CODE = ‘en-us’ #修改为zh-Hans
TIME_ZONE = ‘Asia/Shanghai’管理数据表
通过修改admin.py文件:
from .models import Grades,Students
#注册
admin.site.register(Grades)
admin.site.register(Students)
自定义管理页面:

列表页

list_display = [‘pk’, ‘gname’, ‘gdate’, ‘ggirlnum’, ‘gboynum’]#显示字段
list_filter = [‘gname’]#过滤字段
search_fields = [‘gname’]#搜索字段
list_per_page = 5#分页

#添加,修改页面
fields = [ ‘gname’, ‘ggirlnum’, ‘gdate’, ‘gboynum’, ‘idDelete’]#属性的先后顺序

fieldsets = #给属性分组

注意:field与fieldset不能同时使用

文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41332844/article/details/126837481

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。