本次实验使用conda环境,和PyCharm编译器
0.1 安装anaconda 后
因为conda环境自带很多包,配置比较方便,也可以选择直接在pycharm专业版里直接装django
在anaconda prompt 命令行 pip install django
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWz9ErP2-1607010118942)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203122713506.png)]
0.2 PyCharm
使用anaconda的python编译器
在pyCharm安装django包,pyCharm社区版本身不支持django项目创建,但也可以安装django包,安装后导入项目编写会有代码提示。
安装操作如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GxNhtovJ-1607010118945)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203123319327.png)]
1.0 使用Django创建第一个项目
在命令行 进入工作目录输入以下命令
django-admin startproject mysite #创建一个项目 名为mysite
cd mysite #进入项目
python manage.py runserver 0.0.0.0:8000 #启动
python manage.py migrate #生成数据库表
python manage.py createsuperuser #创建超级用户admin,按提示输入用户名、邮箱、密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TxxZbCCp-1607010118946)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203230331204.png)]
重启后 浏览器输入127.0.0.1:8000
<img src=“C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203151909163.png” alt=“image-20201203151909163” style=“zoom: 80%;” /
浏览器输入127.0.0.1:8000 /admin 登入管理台
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T36eYT3D-1607010118947)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203230531512.png)]
2 目录结构
2.1 项目目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q3ZLZ2df-1607010118948)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203223731424.png)]
manage.py
是Django用于管理本项目的命令行工具,之后进行站点运行、数据库自动生成、静态文件收集等通过该文件完成。即管理工具
和项目名同名的一个文件夹
init.py 定义python包
asgi.py 异步网关接口
setting.py Django项目配置文件,默认时,定义了本项目引用的Django组件,项目名,配置数据库参数,导入其他python包。
#在setting.py最下面修改
LANGUAGE_CODE = 'zh-hans' #设置语言
TIME_ZONE = 'Asia/Shanghai' #设置时区
usrl.py 维护项目的URL路由映射,即定义客户端访问的URL,由哪一个python模块解释并提供反馈。
wgsi.py 定义WSGI的接口信息,并用于与其他Web服务器集成,一般文件生成后无需修改。
2.2 应用目录结构
python manage.py startapp jobs #建立项目应用 jobs
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0SbGZ3Gs-1607010118949)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203223953079.png)]
admin.py 管理站点吗模块的声明文件,默认空
apps.py 应用信息定义文件,在其中生成了类AppCongfig,该类用于定义应用名等Meta数据。
Migrations 包:用于在之后定义引用迁移数据,文件夹目录
Models.py 添加模块层数据类的文件
tests.py 测试代码文件。
views.py 定义URL相应函数
python manage.py makemigrations
创建模型数据库表
python manage.py migrate
使数据库改动生效
3 创建一个简单后台管理
3.1 在应用目录models.py文件写入
from django.db import models
from datetime import datetime
from django.contrib.auth.models import User
# Create your models here.
JobTypes = [
(0,"技术类"),
(1,"产品类"),
(2,"运营类"),
(3,"设计类")
]
Cities = [
(0,"北京"),
(1,"上海"),
(2,"深圳")
]
class Job(models.Model):
job_type = models.SmallIntegerField(blank=False,choices=JobTypes,verbose_name="职位类别")#blank=False 不允许为空 choices选择 verbose_name 页面上显示的名称
job_name= models.CharField(max_length=250,blank=False,verbose_name="职位名称")
job_city = models.SmallIntegerField(choices=Cities,blank=False,verbose_name="工作地点")
job_reponsibility = models.TextField(max_length=1024)
job_requirement = models.TextField(max_length=1024,blank=False,verbose_name="职位要求")
creator = models.ForeignKey(User,verbose_name="创建人",null=True,on_delete=models.SET_NULL) #on_delete 指定关联删除时的函数
creator_date = models.DateTimeField(verbose_name="创建日期",default=datetime.now) #default 设置默认值
modified_date = models.DateTimeField(verbose_name="修改时间",default=datetime.now)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C62wCuLS-1607010118950)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203232448652.png)]
3.2 在应用目录admin.py文件写入
from django.contrib import admin
from jobs.models import Job
# Register your models here.
class JobAdmin(admin.ModelAdmin):
#模型管理类
list_display = ["job_name","job_type","creator","modified_date"]#list_display表示要显示哪些属性
admin.site.register(Job,JobAdmin)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EaiFMg7i-1607010118950)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203232742280.png)]
3.3 把项目文件setting.py 的 INSTALLED_APPS 列表里加入 应用名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UIslefz5-1607010118951)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203233021134.png)]
3.4 重启
debug模式自动加载无需重启
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m3p7Wyks-1607010118951)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203233721979.png)]
tting.py 的 INSTALLED_APPS 列表里加入 应用名
[外链图片转存中…(img-UIslefz5-1607010118951)]
3.4 重启
debug模式自动加载无需重启
[外链图片转存中…(img-m3p7Wyks-1607010118951)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vnh7NEG-1607010118951)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20201203233854813.png)]