# django **Repository Path**: scboy520/django ## Basic Information - **Project Name**: django - **Description**: python django4.0 学习之路,django后台优化、django+swagger 手机微信同号,需要帮助的@我 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: https://www.dyrx.net - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2022-09-17 - **Last Updated**: 2023-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 欢迎加我微信13548266472交流学习,共同进步 # 从虚拟环境中导出项目用到的python第三方库:方便移植到其他服务器 ``` pip freeze > requirements.txt ``` 导出的requirements.txt文件存放在您命令提示符控制面板所在的目录,文件的名字可以自定义。 执行以下命令,安装python第三方库: ``` pip install -r requirements.txt ``` ------------------------------------ # 启动项目 (最后更新时间 20221103) 启动项目前,请确认虚拟环境是否创建和激活,mysql数据库信息(记得启动Mysql)。 mysql版本 8.0.11 测试root 123456 (版本不同可以导入到出SQL文件) 、 django 4.0.6 建议每次更新数据后都同步下sql文件,目录存于mysql_back文件夹下面 ,用于异地恢复数据 启动服务器: 进入 HelloWorld 目录CMD输入以下命令, ``` py manage.py runserver 0.0.0.0:8000 ``` 注意和后面这个区分 python manage.py runserver 0.0.0.0:8000 (本地) 0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。 如果远程访问项目提示问题DisallowedHost at / lnvalid Http_HOST header则需要修改setting.py文件ALLOWED_HOSTS = [] 改成ALLOWED_HOSTS = ['*']保存既可 # DEBUG = True #True为调试模式,部署时应改为 False 调试模式设置为False时,本地静态目录会报错 ------------------------------------ # 在 Windows 上安装 python python下载 https://www.python.org/downloads/ 如选择版本3.10.5下载 https://www.python.org/downloads/release/python-3105/ 安装选自定义 查看python版本方法一,CMD下 输入: python 查看python版本方法二,CMD下 输入: py --version CMD下 输入: pip list 可以查看Python中安装了哪些第三方库,如安装了Django那就会展示出来 https://docs.djangoproject.com/zh-hans/4.1/howto/windows/ ---------------------------------- # 虚拟环境 最佳实践是为你创建的每一个Django项目创建一个独立的环境。转至你想创建项目的文件夹,打开新的命令行窗口然后输入如下命令 ...\> py -m venv project-name 这将创建一个文件夹叫“项目名称” 设置虚拟环境。激活环境, 可到目录下运行: project-name\Scripts\activate.ba 虚拟环境就会激活,并且你会在命令提示符旁边看到 "(project-name)" 指向该环境。每次你打开新的命令行窗口,你需要再次激活环境。 ---------------------------------- # Django安装 https://docs.djangoproject.com/zh-hans/4.1/topics/install/#installing-official-release py -m pip install Django 这将下载并安装最新的 Django 发布版本。 安装完成后,你可以在命令提示符运行 django-admin --version 验证你安装的 Django。 建议在CMD下安装最简单(前提是先安装了python): 带版本号的安装: ``` pip install Django==4.0.6 ``` (有可能要先升级pip版本: python.exe -m pip install --upgrade pip ) ---------------------------------- # 查看版本 django版本4.0.6 检查是否安装成功 方法一:CMD下输入:python -m django --version 方法二:cmd下先输入python 再 >>> import django >>> django.get_version() # 创建项目 Django项目官方说明文档 https://docs.djangoproject.com/zh-hans/4.1/intro/tutorial01/ 使用 django-admin 来创建 HelloWorld 项目容器(外层文件名HelloWorld可随时修改): ``` django-admin startproject HelloWorld ``` 在manage.py同级目录下创建投票小应用 ``` python manage.py startapp polls ``` ------------------------------------------------------------- 在manage.py同级目录下创建投票小项目 python manage.py startapp polls # 配置MYSQL数据库 配置mysite.settings.py以下内容 ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'USER':'django', 'NAME':'djangoone', 'HOST':'127.0.0.1', 'PASSWORD':'123456', 'PORT':'3306', 'OPTIONS':{ 'init_command':"SET default_storage_engine=INNODB;", } # 'NAME': BASE_DIR / 'db.sqlite3', } } ``` ``` pip install mysqlclient #确定已安装python mysql链接依赖mysqlclient 若已安装跳过 ``` 备份数据库 先登录用户名django ``` mysql -udjango -p ``` 再备份 mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql ``` mysqldump -hdjangoone -P3306 -udjango -pdjango –database djangoone> djangoone20230524.sql ``` # 在polls.models.py内自定义模型类, ``` class Txl(models.Model): GENDER_CHOICES = ( (0, '男'), (1, '女') ) # name = models.ForeignKey(Choice, on_delete=models.CASCADE) name = models.CharField(max_length=200, default='无名氏',verbose_name='姓 名') content=models.TextField(default='通讯录标题',blank=True) #这里blank=True作用是设置该字段为【非必填项】 address = models.CharField(max_length=200,default='德阳市', verbose_name='地 址') gender = models.SmallIntegerField(choices=GENDER_CHOICES, default=0, verbose_name='性 别') tel = models.CharField(max_length=200, default=135,blank=True, verbose_name='电话号码') workgroup = models.CharField(max_length=200, default='技术播出中心群') txl_add_date = models.DateTimeField('date published') photo = models.ImageField(upload_to = 'uploudfiles/txlinfo', default = '/static/images/bj.png') #图片字段,错误提示需要安装python -m pip install Pillow #模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名。可通过db_table指明数据库表名。更换表名不影响数据 class Meta: db_table = 'txlinfo' verbose_name = '人物信息' def __str__(self): # return self.address return self.address[:50]+'...' #配置详情修改页面的标题显示字段,只显示5个字符,多余的用...表示 ``` 注意:python -m pip install Pillow //定义图片字段的时候需要依赖包pillow # 模型 迁移更新模型,更新数据库 python manage.py makemigrations 这个命令是记录我们对models.py的所有改动,并且将这个改动迁移到migrations这个文件下生成一个文件001(此时数据库没有表) python manage.py migrate 而当我们执行前面这条命令主要作用就是把这些改动作用到数据库也就是执行migrations里面新改动的迁移文件更新数据库,比如创建数据表,或者增加字段属性。 另外一个需要注意的是这两个命令默认情况下是作用于全局,也就是对所有最新更改的models或者migrations下面的迁移文件进行对应的操作,如果要想仅仅对部分app进行作用的话 则执行如下命令: `python manage.py makemigrations appname,` `python manage.py migrate appname,` 如果要想精确到某一个迁移文件则可以使用: python manage.py migrate appname 文件名 # 创建后台用户名--------------------------- python manage.py createsuperuser 后台地址 http://127.0.0.1:8000/admin/ # 自定义后台---------------- Django默认的admin模板都可以被重写。 在manage.py文件同级下创建一个templates目录,在该目录下再创建一个admin目录。然后,打开设置文件mysite/settings.py,在TEMPLATES条目中添加一个DIRS选项: 'DIRS': [BASE_DIR / 'templates'], # 添加这一行 再创建一个admin目录,新疆一个模板base_site.html,内容如下 ``` {% extends "admin/base.html" %} {% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %} {% block branding %}