武沛齐Django web学习 Django(一)
初识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项目中会有一些默认的文件和文件夹
(图片来源网络,侵删)
(本人用的专业版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】
- 编写视图函数【views.py】
-
启动Django项目
(图片来源网络,侵删)-
命令行启动
python manage.py runserver
-
pycharm启动
4.1 templates模板
# 去app目录下的templates目录寻找html文件(根据app注册顺序,逐一去他们的templates目录中寻找) # 加上这个之后 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 优先去项目的根目录的templates中寻找
4.2 静态文件
在开发过程中一般将:
图片, CSS, JS 都会当作静态文件处理。
Django中推荐下面这样引入静态文件,这样如果改了路径,只需要修改配置文件就行
{% load static %} Title
添加用户
5. 模板语法
Title
模板语法学习
{{ n1 }}{{ n2 }}{{ n2.0 }}{{ n2.1 }}{{ n2.2 }}{% for item in n2 %} {{ item }} {% endfor %}{{ n3.name }}{% if n1 == '高宇轩' %}哈哈哈啊哈
{% elif n1 == '大帅比' %}啦啦啦啦啦
{% else %}嘿嘿嘿嘿嘿
{% endif %}(图片来源网络,侵删)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中:
相当于
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 再找到这一行注释掉就可以了
-
插入
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 }}
-
-
-
-
- 编写视图函数【views.py】
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...