餐厅网站建设什么科目,门户网站开发费需入无形资产,网站建设的设计思路,j2ee网站开发教程基于Django4.1.4的入门学习记录Django创建Django项目创建工程工程目录说明运行开发服务器settings.py配置文件应用的创建创建应用模块应用模块文件说明App应用配置注册安装子应用数据模型ORM概述定义模型类生成数据库表查看数据库文件Admin管理工具管理界面本地化创建管理员注册…
基于Django4.1.4的入门学习记录Django创建Django项目创建工程工程目录说明运行开发服务器settings.py配置文件应用的创建创建应用模块应用模块文件说明App应用配置注册安装子应用数据模型ORM概述定义模型类生成数据库表查看数据库文件Admin管理工具管理界面本地化创建管理员注册模型类操作模型数据视图和URL定义视图配置URLconf在应用中定义URLconf在项目中定义URLconf执行测试模板创建模板设置模板查找路径模板接收视图传入的数据模板处理数据验证模板处理静态文件Django Django是一个基于Python的Web框架它可以帮助开发人员快速构建高质量的Web应用程序。 官网https://www.djangoproject.com/ 
GitHubhttps://github.com/django/django 
安装Django 
pip install djangopip install django具体版本号创建Django项目 
创建工程 安装Django之后就有了可用的管理工具Django-admin。Django-admin是一个命令行工具用于管理 Django 项目。 常用命令: 
startproject: 创建新的 Django 项目startapp: 在现有的 Django 项目中创建新的应用程序runserver: 启动 Django 开发服务器makemigrations: 根据模型更改创建数据库迁移migrate: 应用数据库迁移以更新数据库结构createsuperuser: 创建超级用户test: 运行测试套件shell: 启动 Django shellcollectstatic: 收集静态文件并将其复制到指定目录中dbshell: 启动数据库 shell项目工程目录可以借助django提供的命令帮助创建 
django-admin startproject 工程名称工程目录说明 
创建的工程目录结构如下   与项目同名的目录此处为demo。 
manage.py一个实用的命令行工具可以各种方式与该 Django项目进行交互__init__.py一个空文件告诉 Python 该目录是一个 Python 包asgi.py 一个 ASGI 兼容的 Web 服务器的入口以便运行你的项目manage.py项目管理文件通过它管理项目settings.py项目的整体配置文件urls.py项目的URL配置文件wsgi.py项目与WSGI兼容的Web服务器入口运行开发服务器 
django提供了一个纯python编写的轻量级web服务器仅在开发阶段使用能够快速预览到开发的效果。默认工作在调式Debug模式下如果增加、修改、删除文件服务器会自动重启。 
python manage.py runserver ip:端口# 默认IP是127.0.0.1默认端口为8000
python manage.py runserver(py3) D:\WorkSpace\Python\demopython manage.py runserver
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run python manage.py migrate to apply them.
December 02, 2022 - 23:41:36
Django version 4.1.3, using settings demo.settings
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.访问http://127.0.0.1:8000/  若指定IP:端口的形式启动服务则需要在settings.py配置文件中进行配置添加允许允许的IP、域名 
# 允许那个主机访问后端,是一种安全机制
ALLOWED_HOSTS  [127.0.0.1,www.test.com]python manage.py runserver www.test.com:端口python manage.py runserver IP:端口settings.py配置文件 
BASE_DIR 当前工程的根目录Django根据此配置来定位工程内的相关文件也可以使用该参数构造文件路径。 # Build paths inside the project like this: BASE_DIR / subdir.
BASE_DIR  Path(__file__).resolve().parent.parent 
DEBUG 调试模式创建工程后初始值为True即默认工作在调试模式下。其主要作用就是修改代码文件程序自动重启当Django程序出现异常时向前端显示详细的错误追踪信息。反之非调试模式下仅返回Server Error (500) # SECURITY WARNING: dont run with debug turned on in production!
DEBUG  True应用的创建 在开发中通常将工程项目拆分为不同的子功能模块各功能模块间可以保持相对的独立 创建应用模块 
在工程项目目录执行如下命令创建一个子应用模块 
python manage.py startapp 子应用名称子应用模块目录结构如下 应用模块文件说明 
migrations目录用于存放数据库迁移历史文件admin.py文件跟网站的后台管理站点配置相关apps.py文件用于配置当前子应用的相关信息models.py文件用户保存数据库模型类tests.py文件用于开发测试用例编写单元测试views.py文件用于编写Web应用视图App应用配置 在每个应用目录中都包含apps.py文件它用于保存该应用的相关信息。在创建应用时Django会向apps.py文件中写入一个该应用的配置类 from django.apps import AppConfigclass UserConfig(AppConfig):default_auto_field  django.db.models.BigAutoFieldname  userverbose_name  用户模块AppConfig.name表示这个配置类是加载到哪个应用每个配置类必须包含此属性默认自动生成。AppConfig.verbose_name用于设置该应用的名字名字在Django提供的Admin管理站点中会显示,默认没有该参数配置。注册安装子应用 创建出来的子应用目录文件虽然被放到了工程项目目录中但是django工程并不能立即直接使用该子应用需要注册安装后才能使用。 打开工程配置文件settings.pyINSTALLED_APPS项保存工程中已经注册安装的子应用初始工程中的INSTALLED_APPS如下 
INSTALLED_APPS  [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,
]注册安装一个子应用将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表。 
INSTALLED_APPS  [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,# 添加注册子应用# 方式一# 子应用名称.apps.子应用名Configuser.apps.UserConfig,# 方式二# 子应用名称user,
]数据模型 Django 对各种数据库提供了统一的调用API包括PostgreSQL、MySQL、SQLite、Oracle。 ORM概述 
Django 模型使用自带的 ORM。模型是MVT设计模式中的Model, 专门负责和数据库交互对应models.py文件Model中内嵌了ORM框架, 只需要定义模型类, 通过模型类和对象完成数据库表的增删改查ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换使得数据库的操作面向对象化对象关系映射Object Relational Mapping简称 ORM 用于实现面向对象编程语言里不同类型系统的数据之间的转换。ORM 在业务逻辑层和数据库层之间充当了桥梁的作用。ORM 是通过使用描述对象和数据库之间的映射的元数据将程序中的对象自动持久化到数据库中。定义模型类 
# 创建用户信息模型类
class UserInfo(models.Model):# 创建字段  字段类型 字段宽度name  models.CharField(max_length5)age  models.IntegerField(max_length2)类名代表了数据库表名且继承了models.Model类里面的字段代表数据表中的字段(name)数据类型则由CharField相当于varchar、max_length 参数限定长度。 
生成数据库表 
1.生成迁移文件 生成迁移文件就是根据模型类生成创建表的语句。也是让Django 知道模型有一些变更对表结构调整。 生成迁移文件之前  执行命令生成迁移文件 
python manage.py makemigrations(py3) D:\WorkSpace\Python\demopython manage.py makemigrations
Migrations for user:user\migrations\0001_initial.py- Create model UserInfo2.执行迁移 迁移文件生成后执行迁移就是根据第一步生成的语句在数据库中创建表 python manage.py migrate(py3) D:\WorkSpace\Python\demopython manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, sessions, user
Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying auth.0012_alter_user_first_name_max_length... OKApplying sessions.0001_initial... OKApplying user.0001_initial... OK生成db.sqlite3其默认采用sqlite3数据库来存储数据由settings.py文件中的DATABASES节点配置 查看数据库文件 
将生成的db.sqlite3文件拖放到Database面板  添加sqlite的数据源驱动 点击Download下载驱动  下载驱动后点击应用然后刷新得到如下数据库表 Admin管理工具 Django提供了基 web的管理工具。 Django自动管理工具是django.contrib 的一部分。在项目的 settings.py 中的 INSTALLED_APPS INSTALLED_APPS  (django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,
)管理界面本地化 本地化是将显示的语言、时间等设置成使用本地的习惯 通常是根据使用者所属国家对应语言进行设置例如中国大陆地区使用简体中文时区使用亚洲/上海时区 默认本地化  设置为中国本地化 
# 设置语言设置中文
LANGUAGE_CODE  zh-Hans
# 设置时区亚洲上海时区
TIME_ZONE  Asia/Shanghai创建管理员 
执行如下命令创建管理员接着按提示输入用户名、邮箱、密码等信息 
python manage.py createsuperuser(py3) D:\WorkSpace\Python\demopython manage.py createsuperuser
用户名 (leave blank to use jackchen): admin
电子邮件地址: adminoa.com
Password:
Password (again):
密码跟 用户名 太相似了。
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.如果忘记密码需要重置密码执行如下命令 
python manager.py changepassword 用户名执行如下命令启动服务 
python manage.py runserver访问 http://127.0.0.1:8000/admin登陆站点  站点登陆成功后默认界面如下 注册模型类 为了让 admin界面管理某个数据模型需要先注册该数据模型到 admin。Django能够根据定义的模型类自动地生成管理模块。 在admin.py文件中注册模型类只需要导入对应模型模块from user.models import UserInfo 
from django.contrib import adminfrom user.models import UserInfo# Register your models here.
admin.site.register(UserInfo)注册模型后再次访问站点管理后台在站点管理界面进行方便快速的数据管理  
操作模型数据 可以对模型数据查看、添加、修改、删除 点击增加按钮进入如下界面  新增一条用户信息得到如下界面显示的是一个UserInfo object (1)  打开models.py文件修改模型类使用字符串的方式输出 
from django.db import models# Create your models here.
class UserInfo(models.Model):# 创建字段  字段类型 字段宽度name  models.CharField(max_length5)age  models.IntegerField()gender  models.BooleanField()def __str__(self):return self.name进行App应用配置设置Admin管理站点显示设置应用的名字 
from django.apps import AppConfigclass UserConfig(AppConfig):default_auto_field  django.db.models.BigAutoFieldname  userverbose_name  用户模块视图和URL 一个视图函数简称视图是一个简单的 Python 函数它接受 Web 请求并且返回 Web 响应。 对于Django的设计框架MVT用户在URL中请求的是视图视图接收请求后进行处理并将处理的结果返回给请求者。 响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片 视图一般放在项目的 views.py 文件中。每个视图函数都负责返回一个 HttpResponse 对象对象中包含生成的响应。 视图层中有两个重要的对象请求对象(request)与响应对象(HttpResponse)。 定义视图 
1.视图就是一个Python函数被定义在应用的views.py中 
2.需要导入HttpResponse模块 : from django.http import HttpResponse 
3.视图第一个参数是HttpRequest类型的对象reqeust包含所有请求信息 
4.视图必须返回HttpResponse对象包含返回给请求者的响应信息 
在views.py中定义视图函数 from django.http import HttpResponse# Create your views here.def userIndex(request):return HttpResponse(test)配置URLconf 
视图的查找过程 
1.在浏览器地址栏中输入URL请求网站2.网站获取URL信息3.然后与编写好的URLconf逐条匹配4.如果匹配成功则调用对应的视图5.如果所有的URLconf都没有匹配成功.则返回404错误打开项目的settings.py文件可以看到URLconf入口其指向了项目的urls.py文件  
在应用中定义URLconf 
首先在应用中创建urls.py文件用于定义URLconf。注意一条URLconf包括URL规则、视图两部分 
URL规则使用正则表达式定义视图就是在views.py中定义的视图函数Django版本差异 
Django1.1.x 版本 
url() 方法普通路径和正则路径均可使用需要自己手动添加正则首位限制符号。from django.conf.urls import url # 用 url 需要引入urlpatterns  [url(r^admin/$, admin.site.urls),url(r^index/$, views.index), # 普通路径url(r^user/([0-9]{4})/$, views.articles), # 正则路径
]Django 2.2.x 之后 
path用于普通路径不需要自己手动添加正则首位限制符号底层已经添加。re_path用于正则路径需要自己手动添加正则首位限制符号Django path() 可以接收四个参数分别是两个必选参数route、view 和两个可选参数kwargs、name。 语法格式 
path(route, view, kwargsNone, nameNone)route: 字符串表示 URL 规则与之匹配的 URL 会执行对应的第二个参数 view。view: 用于执行与正则表达式匹配的 URL 请求。kwargs: 视图使用的字典类型的参数。name: 用来反向获取 URL。from django.urls import path, re_pathfrom user import viewsurlpatterns  [# 普通路径path(userIndex/, views.userIndex),# 正则路径re_path(r^, views.userIndex),re_path(r^index/$, views.index, nameindex),re_path(r^bio/(?Pusername\w)/$, views.bio, namebio),re_path(r^weblog/, include(blog.urls)),
]在项目中定义URLconf 在项目的urls.py文件中配置URLconf具体如何配置参考Examples说明。 这里统一将访问user/路径分发给user应用 
demo URL ConfigurationThe urlpatterns list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path(, views.home, namehome)
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path(, Home.as_view(), namehome)
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path(blog/, include(blog.urls))from django.contrib import adminfrom django.urls import include, pathurlpatterns  [path(admin/, admin.site.urls),# 只要是user/路径则匹配成功path(user/, include(user.urls)),
]执行测试 
访问http://127.0.0.1:8000/user/userIndex/  
模板 Django中MVT设计模式的T即为模板Template。 在Django中, 将前端的内容定义在模板中, 然后再把模板交给视图调用 创建模板 
在应用同级目录下创建模板文件夹templates文件夹名称是固定写法在templates文件夹下, 创建应用同名文件夹例如user在应用同名文件夹下创建网页模板文件例如index.html设置模板查找路径 
编辑项目目录下的settings.py文件先导入os模块import os然后设置模板查找的路径 模板接收视图传入的数据 
导入render模块定义视图准备上下文数据将上下文数据交给模板处理 模板处理数据 
注释语法{# 注释内容 #} 
通过{{ context的key }}方式获取值定义的上下文数据  
验证模板处理 
执行命令python manage.py runserver启动服务器 
访问相应URL如http://127.0.0.1:8000/user/userIndex/ 静态文件 项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中以方便管理。 Django中提供了一种解析的方式配置静态文件路径。 静态文件可以放在项目根目录下也可以放在应用的目录下由于有些静态文件在项目中是通用的所以推荐放在项目的根目录下方便管理。 编辑settings.py文件配置修改静态文件的两个参数 
STATICFILES_DIRS存放查找静态文件的目录STATIC_URL访问静态文件的URL前缀STATIC_URL  /static/
STATICFILES_DIRS  [os.path.join(BASE_DIR, static),
]在项目根目录下创建static目录来保存静态文件。可以添加任何静态文件例如添加一个index.html文件  通过访问http://127.0.0.1:8000/static/文件名方式来访问在static中的静态文件。  文章转载自: http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.qkxt.cn.gov.cn.qkxt.cn http://www.morning.wglhz.cn.gov.cn.wglhz.cn http://www.morning.cwknc.cn.gov.cn.cwknc.cn http://www.morning.dmxzd.cn.gov.cn.dmxzd.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.mmzfl.cn.gov.cn.mmzfl.cn http://www.morning.tnwwl.cn.gov.cn.tnwwl.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.pmmrb.cn.gov.cn.pmmrb.cn http://www.morning.sgrdp.cn.gov.cn.sgrdp.cn http://www.morning.ishoufeipin.cn.gov.cn.ishoufeipin.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.fkflc.cn.gov.cn.fkflc.cn http://www.morning.chxsn.cn.gov.cn.chxsn.cn http://www.morning.hmdn.cn.gov.cn.hmdn.cn http://www.morning.njpny.cn.gov.cn.njpny.cn http://www.morning.ljwyc.cn.gov.cn.ljwyc.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.lhxkl.cn.gov.cn.lhxkl.cn http://www.morning.mmynk.cn.gov.cn.mmynk.cn http://www.morning.bhznl.cn.gov.cn.bhznl.cn http://www.morning.phlwj.cn.gov.cn.phlwj.cn http://www.morning.qkwxp.cn.gov.cn.qkwxp.cn http://www.morning.rszwc.cn.gov.cn.rszwc.cn http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn http://www.morning.skkmz.cn.gov.cn.skkmz.cn http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn http://www.morning.qynpw.cn.gov.cn.qynpw.cn http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.jlpdc.cn.gov.cn.jlpdc.cn http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn http://www.morning.tdttz.cn.gov.cn.tdttz.cn http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.klltg.cn.gov.cn.klltg.cn http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn http://www.morning.glrzr.cn.gov.cn.glrzr.cn http://www.morning.dlurfdo.cn.gov.cn.dlurfdo.cn http://www.morning.njstzsh.com.gov.cn.njstzsh.com http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.sjli222.cn.gov.cn.sjli222.cn http://www.morning.mwnch.cn.gov.cn.mwnch.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.bqyb.cn.gov.cn.bqyb.cn http://www.morning.nylbb.cn.gov.cn.nylbb.cn http://www.morning.ffcsr.cn.gov.cn.ffcsr.cn http://www.morning.zqwp.cn.gov.cn.zqwp.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.fksdd.cn.gov.cn.fksdd.cn http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.mqmxg.cn.gov.cn.mqmxg.cn http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.kjcfz.cn.gov.cn.kjcfz.cn http://www.morning.qfbzj.cn.gov.cn.qfbzj.cn http://www.morning.bsjpd.cn.gov.cn.bsjpd.cn http://www.morning.fgxr.cn.gov.cn.fgxr.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.krswn.cn.gov.cn.krswn.cn http://www.morning.tzcr.cn.gov.cn.tzcr.cn http://www.morning.ncfky.cn.gov.cn.ncfky.cn http://www.morning.kttbx.cn.gov.cn.kttbx.cn http://www.morning.sbncr.cn.gov.cn.sbncr.cn http://www.morning.ltffk.cn.gov.cn.ltffk.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.lkbkd.cn.gov.cn.lkbkd.cn http://www.morning.gnfkl.cn.gov.cn.gnfkl.cn http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn http://www.morning.klzdy.cn.gov.cn.klzdy.cn