武沛齐Django web学习 Django(一)

02-29 1811阅读 0评论

初识Django

1. 安装Django

pip install django
c:\python39
	- python.exe
	- Scripts
		- pip.exe
		- django-admin.exe	[工具,创建django项目中的默认文件和文件夹]
	- Lib
		- 内置模块
		- site-packages
			- flask
			- pymql
			- django	[框架的源码]

2. 创建项目

django项目中会有一些默认的文件和文件夹

武沛齐Django web学习 Django(一),武沛齐Django web学习 Django(一),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第1张
(图片来源网络,侵删)

(本人用的专业版pycharm,直接就能创建)

默认项目的文件介绍:

mysite
|-- manage.py	【项目的管理,启动项目,创建app,数据管理】【***常常用***】	
|-- mysite
	|
	|-- __init__.py
	|-- urls.py		【url和函数的对应关系】【***常常修改***】
	|-- settings.py	【项目配置】【***常常修改***】
	|-- asgi.py		【接收网络请求】【不要动】
	|-- wsgi.py		【接收网络请求】【不要动】

3. APP

- 项目
	- app,用户管理	【表结构,函数,HTML,CSS】
	- app,后台管理	【表结构,函数,HTML,CSS】
	- app,网站	【表结构,函数,HTML,CSS】
	- app,API	【表结构,函数,HTML,CSS】
	··
	
注意:我们开发比较简洁,用不到多app
python manege.py startapp app01
├─app01
│  │  admin.py	【固定,不动】django默认提供了admin后台管理
│  │  apps.py	【固定,不动】app启动类
│  │  models.py	【**重要**】,对数据库操作
│  │  tests.py	【固定,不动】单元测试
│  │  views.py	【**重要**】,函数
│  │  __init__.py
│  │
│  └─migrations	【固定,不动】数据库变更记录
│          __init__.py

4. 快速上手

  • 确保app已注册

    在settings中INSTALLED_APPS中加一行:'app01.apps.App01Config',
    
  • 编写URL和视图函数的对应关系【urls.py】

    武沛齐Django web学习 Django(一),image-20240224193008259,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第2张
    • 编写视图函数【views.py】

      武沛齐Django web学习 Django(一),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第3张

      • 启动Django项目

        武沛齐Django web学习 Django(一),武沛齐Django web学习 Django(一),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第4张
        (图片来源网络,侵删)
        • 命令行启动

          python manage.py runserver
          
        • pycharm启动

          武沛齐Django web学习 Django(一),image-20240224193818911,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第5张

          4.1 templates模板

          # 去app目录下的templates目录寻找html文件(根据app注册顺序,逐一去他们的templates目录中寻找)
          # 加上这个之后 'DIRS': [os.path.join(BASE_DIR, 'templates')],
          # 优先去项目的根目录的templates中寻找
          

          4.2 静态文件

          在开发过程中一般将:

          图片, CSS, JS 都会当作静态文件处理。

          武沛齐Django web学习 Django(一),image-20240224202719983,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第6张

          Django中推荐下面这样引入静态文件,这样如果改了路径,只需要修改配置文件就行

          {% load static %}  
          
          
          
              
              Title
              
          
          
          

          添加用户

          武沛齐Django web学习 Django(一),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第7张

          5. 模板语法

          
          
              
              Title
          
          
              

          模板语法学习

          {{ n1 }}
          {{ n2 }}
          {{ n2.0 }}
          {{ n2.1 }}
          {{ n2.2 }}
          {% for item in n2 %} {{ item }} {% endfor %}
          {{ n3.name }}

          {% if n1 == '高宇轩' %}

          哈哈哈啊哈

          {% elif n1 == '大帅比' %}

          啦啦啦啦啦

          {% else %}

          嘿嘿嘿嘿嘿

          {% endif %}

          武沛齐Django web学习 Django(一),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第8张

          武沛齐Django web学习 Django(一),武沛齐Django web学习 Django(一),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第9张
          (图片来源网络,侵删)

          6. 请求和响应

          def something(request):
              # request 是一个对象,封装了用户发送过来的所有请求相关数据
              # 1. 获取请求方式 GET/POST
              print(request.method)
              # 2. 在URL上传递一些值 http://localhost:8000/smt/?n1=123&n2=456
              print(request.GET)
              # 3. 在请求体中提交数据
              print(request.POST)
              # 4. HttpResponse("返回内容"),内容字符串返回给浏览器
              # return HttpResponse("返回内容")
              # 5. 读取HTML内容+渲染(替换)
              # return render(request, "something.html", {"title": "来了"})
              # 6. 让浏览器重定向到其他的页面
              return redirect('')
          

          7. 数据库操作

          Django开发操作数据库更简单,内部提供了ORM框架

          ORM是一个翻译的过程

          7.1 安装第三方模块

          pip install mysqlclient
          

          7.2 ORM

          ORM可以帮我们做两件事:

          • 创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】
          • 操作表中数据【也不用写SQL语句】
            1. 自己创建数据库
            2. django连接数据库

            在settings.py文件中进行配置和修改

            DATABASES = {
                "default": {
                    "ENGINE": "django.db.backends.mysql",
                    "NAME": "django",   # 数据库名字
                    "USER": "root",
                    "PASSWORD": "123",
                    "HOST": "127.0.0.1", # 哪台机器安装了mysql
                    "PORT": 3306,
                }
            }
            
            3. django操作表

            创建表:在models.py中:

            武沛齐Django web学习 Django(一),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第10张

            相当于

            create table app01_userinfo(    
                id integer primary key autoincrement,   # 自动生成
                name varchar(32),
                password varchar(64),
                age int
            )
            

            执行命令:

            注意:app需要提前注册

            python manage.py makemigrations
            python manage.py migrate
            
            在这个过程中,本人碰到了这个报错
            django.db.utils.NotSupportedError: MySQL 8.0.11 or later is required (found 5.7.31).
            应该会有不少人和我一样
            我们只需要找到django安装路径
            D:\Code\Python\PythonLearning\Django_Learn\djangoProject_1\.venv\Lib\site-packages\django\db\backends\base
            找到base.py
            再找到这一行注释掉就可以了
            

            武沛齐Django web学习 Django(一),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,注册,安装,第11张

            • 插入

              def orm(request):
                  # 测试orm操作表中的数据
                  # models.DepartmentInfo.objects.create(title="销售部")
                  # models.DepartmentInfo.objects.create(title="IT部")
                  # models.DepartmentInfo.objects.create(title="运营部")
                  UserInfo.objects.create(name="高宇轩", password="123", age=19)
                  return HttpResponse("成功")
              
            • 删除

                  # 删除
                  DepartmentInfo.objects.filter(id=1).delete()    # filte时筛选条件
                  DepartmentInfo.objects.all().delete()       # all时全部删除
              
            • 获取数据

               #data_list = [对象, 行, 行] QuerySet类型
                  data_list = DepartmentInfo.objects.all()
                  for obj in data_list:
                      print(obj.id, obj.name)
                  data_list = UserInfo.objects.filter(id=1)
              
            • 更新数据

              UserInfo.objects.all().update(password='999')
              UserInfo.objects.filter(name="高宇轩").update(password='999')
              

              8. 案例:用户管理

              1. 展示用户列表

                • 获取所有用户信息
                • HTML渲染
                  def info_list(request):
                      # 1. 获取数据库中所有的用户信息
                      # [对象, 对象, 对象]
                      haha_list = UserInfo.objects.all()
                      print(haha_list)
                      return render(request, "info_list.html", {"haha_list": haha_list})
                  
                  
                  
                      
                      用户列表
                  
                  
                  添加
                  

                  用户列表

                  {% for obj in haha_list %}
                  ID 姓名 密码 年龄 操作
                  {{ obj.id }} {{ obj.name }} {{ obj.password }} {{ obj.age }}

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1811人围观)

还没有评论,来说两句吧...

目录[+]