南昌哪家网站开发公司好,wordpress 企业站点,东莞公司网站策划,奢侈品网站策划方案文章目录 前言一、安装Django二、创建项目1.终端创建项目2.Pycharm创建项目#xff08;专业版才可以#xff09;3.默认文件介绍 三、创建app1.app介绍2.默认文件介绍 四、快速上手1.写一个网页步骤1#xff1a;注册app 【settings.py】步骤2#xff1a;编写URL和视图函数对… 文章目录 前言一、安装Django二、创建项目1.终端创建项目2.Pycharm创建项目专业版才可以3.默认文件介绍 三、创建app1.app介绍2.默认文件介绍 四、快速上手1.写一个网页步骤1注册app 【settings.py】步骤2编写URL和视图函数对应关系 【urls.py】步骤3编写视图函数 【views.py】步骤4启动django项目 2.url与view的对应关系3.templates模板4.静态文件static目录html引用静态文件 五、模板语法案例伪联通新闻中心六、请求和响应案例用户登录七、数据库操作1.安装第三方模块2.ORM框架操作表步骤1自己创建数据库步骤2django连接数据库步骤3类操作表 3.ORM框架操作数据新建删除获取更新 八、案例用户管理功能1展示用户功能2添加用户功能3删除用户 前言 Django是一个高级的Python Web框架可以快速开发安全和可维护的网站。由经验丰富的开发者构建Django负责处理网站开发中麻烦的部分可以专注于编写应用程序而无需重新开发。它是免费和开源的有活跃繁荣的社区丰富的文档以及很多免费和付费的解决方案。 一、安装Django
pip install django此时python文件夹的目录
c:\python39- python.exe- Scripts- pip.exe- django-admin.exe 【工具创建django项目中的文件和文件夹】- Lib- 内置模块- site-packages- openpyxl- python-docx- flask- django 【框架的源码】二、创建项目
1.终端创建项目
打开终端。进入某个目录项目放在哪里。 /Users/wupeiqi/PycharmProjects/gx执行命令创建项目 c:\python39\Scripts\django-admin.exe startproject 项目名称如果 c:\python39\Scripts 已加入环境系统环境变量。
django-admin startproject 项目名称2.Pycharm创建项目专业版才可以 命令行创建的项目才是标准的。pycharm在标准的基础上默认给咱们加了点东西。 创建了一个templates目录【一般在app内部使用而不用全局的templates。要删除】settings.py中【这句代码表示每次先查找全局templates再遍历每个app的templates。要删除】 3.默认文件介绍
mysite
├── manage.py 【项目的管理启动项目、创建app、数据管理】【不要动】【***常常用***】
└── mysite├── __init__.py├── settings.py 【项目配置】 【***常常修改***】├── urls.py 【URL和函数的对应关系】【***常常修改***】├── asgi.py 【接收网络请求】【不要动】└── wsgi.py 【接收网络请求】【不要动】三、创建app
1.app介绍
我们开发比较简洁用不到多app一般情况下项目下创建1个app即可一个项目也可以创建多个app
- 项目- app用户管理【表结构、函数、HTML模板、CSS】- app订单管理【表结构、函数、HTML模板、CSS】- app后台管理【表结构、函数、HTML模板、CSS】- app网站 【表结构、函数、HTML模板、CSS】- appAPI 【表结构、函数、HTML模板、CSS】...2.默认文件介绍
├── app01
│ ├── __init__.py
│ ├── admin.py 【固定不用动】django默认提供了admin后台管理。
│ ├── apps.py 【固定不用动】app启动类
│ ├── migrations 【固定不用动】数据库变更记录
│ │ └── __init__.py
│ ├── models.py 【**重要**】对数据库操作。
│ ├── tests.py 【固定不用动】单元测试
│ └── views.py 【**重要**】函数。
├── manage.py
└── mysite2├── __init__.py├── asgi.py├── settings.py├── urls.py 【URL-函数】└── wsgi.py四、快速上手
1.写一个网页
步骤1注册app 【settings.py】 步骤2编写URL和视图函数对应关系 【urls.py】 步骤3编写视图函数 【views.py】 步骤4启动django项目
命令行启动 python manage.py runserver Pycharm启动 2.url与view的对应关系 3.templates模板
可以放html、css等 4.静态文件
static目录
需要自己创建 html引用静态文件
Django推荐使用{% load static %}的方法导入 五、模板语法案例伪联通新闻中心 注意templates url view html 效果 六、请求和响应案例用户登录 注意GET和POST请求的区别 url view html 七、数据库操作 相较于MySQL数据库 pymysql的复杂操作Django提供了更便捷的ORM框架 1.安装第三方模块
直接安装pip install mysqlclient官网安装 2.ORM框架操作表
步骤1自己创建数据库 启动MySQL服务 自带工具创建数据库 create database gx_day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;步骤2django连接数据库
在settings.py文件中进行配置和修改。
DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: gx_day15, # 数据库名字USER: root,PASSWORD: root123,HOST: 127.0.0.1, # 本台机器安装了MySQLPORT: 3306,}
}步骤3类操作表 在models.py文件中操作表 创建、新增、删除、修改直接在上面操作即可创建表 等价于
create table app01_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int
)最后还要执行命令
python3.9 manage.py makemigrations
python3.9 manage.py migrate注意 在表中新增列时由于已存在列中可能已有数据所以新增列必须要指定新增列对应的数据
【设置默认值】age models.IntegerField(default2)【允许为空】data models.IntegerField(nullTrue, blankTrue)以后在开发中如果想要对表结构进行调整在models.py文件中操作类即可。 结束要执行命令: python3.9 manage.py makemigrationspython3.9 manage.py migrate3.ORM框架操作数据
新建
Department.objects.create(title销售部)
Department.objects.create(titleIT部)
Department.objects.create(title运营部)
UserInfo.objects.create(name武沛齐, password123, age19)
UserInfo.objects.create(name朱虎飞, password666, age29)
UserInfo.objects.create(name吴阳军, password666)删除
UserInfo.objects.filter(id3).delete()
Department.objects.all().delete()获取
3.1 获取符合条件的所有数据
data_list [对象,对象,对象] QuerySet类型
data_list UserInfo.objects.all()
for obj in data_list:print(obj.id, obj.name, obj.password, obj.age)3.1 获取第一条数据【对象】
row_obj UserInfo.objects.filter(id1).first()
print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)更新
UserInfo.objects.all().update(password999)
UserInfo.objects.filter(id2).update(age999)
UserInfo.objects.filter(name朱虎飞).update(age999)八、案例用户管理
功能1展示用户
url增加info/list
from django.contrib import admin
from django.urls import path
from blog import viewsurlpatterns [path(admin/, admin.site.urls),path(index_app/, views.index_app),path(user_list/, views.user_list),path(tpl/, views.tpl),path(something/, views.something),path(login/, views.login),path(orm/, views.orm),path(info/list/, views.info_list)
]view
from blog.models import UserInfo
...def info_list(request):data_list UserInfo.objects.all()return render(request, info_list.html, {data_list: data_list})info_list.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodytable border1theadtrthID/thth姓名/thth密码/thth年龄/th/tr/theadtbody{% for obj in data_list %}trtd{{ obj.id }}/tdtd{{ obj.name }}/tdtd{{ obj.password }}/tdtd{{ obj.age }}/td/tr{% endfor %}/tbody/table
/body
/html效果 功能2添加用户
url增加info/add
from django.contrib import admin
from django.urls import path
from blog import viewsurlpatterns [path(admin/, admin.site.urls),path(index_app/, views.index_app),path(user_list/, views.user_list),path(tpl/, views.tpl),path(something/, views.something),path(login/, views.login),path(orm/, views.orm),path(info/list/, views.info_list),path(info/add/, views.info_add),
]view
def info_add(request):if request.method GET:return render(request, info_add.html)# 获取用户提交的数据name request.POST.get(name)password request.POST.get(password)age request.POST.get(age)# 添加到数据库UserInfo.objects.create(namename, passwordpassword, ageage)# 自动跳转return redirect(/info/list/)info_add.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodyform action/info/add/ methodpost{% csrf_token %}input typetext namename placeholder用户名input typetext namepassword placeholder密码input typetext nameage placeholder年龄input typesubmit value提交/form
/body
/html效果点击“提交”可以跳转到展示 在info/list页面增加添加按钮修改info_list.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodya href/info/add添加/atable border1theadtrthID/thth姓名/thth密码/thth年龄/th/tr/theadtbody{% for obj in data_list %}trtd{{ obj.id }}/tdtd{{ obj.name }}/tdtd{{ obj.password }}/tdtd{{ obj.age }}/td/tr{% endfor %}/tbody/table
/body
/html效果点击添加后,即可跳转回添加页面 功能3删除用户
url增加info/delete
from django.contrib import admin
from django.urls import path
from blog import viewsurlpatterns [path(admin/, admin.site.urls),path(index_app/, views.index_app),path(user_list/, views.user_list),path(tpl/, views.tpl),path(something/, views.something),path(login/, views.login),path(orm/, views.orm),path(info/list/, views.info_list),path(info/add/, views.info_add),path(info/delete/, views.info_delete)
]view
def info_delete(request):nid request.GET.get(nid)UserInfo.objects.filter(idnid).delete()return redirect(/info/list/)info_delete.html
!DOCTYPE html
html langen
headmeta charsetUTF-8titleDocument/title
/head
bodya href/info/add添加/atable border1theadtrthID/thth姓名/thth密码/thth年龄/thth操作/th/tr/theadtbody{% for obj in data_list %}trtd{{ obj.id }}/tdtd{{ obj.name }}/tdtd{{ obj.password }}/tdtd{{ obj.age }}/tdtda href/info/delete?nid{{ obj.id }}删除/a/td/tr{% endfor %}/tbody/table
/body
/html效果浏览器访问,点击删除即可将对应的行删除