Django个人学习

Django第一周

day0518
抽象类:加上metaclass=ABCMeta,不能创建对象,专门用于继承
抽象方法:留给子类去实现的方法,@abstractmethod
枚举:变量只有有限个选项,可以使用枚举(继承Enum,使得可以遍历类函数)定义符号常量
符号常量优于字面常量
函数的参数可以使用*分隔,前面是位置参数,后面是关键字参数,否则报错
enumerate(list):将list每个元素组成一个有下标和元素的二元组
1. Web应用
— HTTP 请求 —>
浏览器 服务器
<— HTTP 响应 —

静态内容:HTML页面、CSS、JavaScript、图像、音视频等 ---> Nginx
动态内容:需要通过程序自动生成的部分 ---> Python ---> 运行Python程序的服务器

HTTP(s) ---> 超文本传输协议 ---> 使用了TCP提供的可靠传输服务

HTTP请求:请求行 / 请求头 / 空行 / 消息体
HTTP响应:响应行 / 响应头 / 空行 / 消息体
1. 为什么用Python做后端开发?
自动化运维 / 自动化测试 / 数据分析 / AI算法 / DevOps / SRE
服务器端应用开发(Web后端开发)
—> App/网站的服务端代码编写(数据接口开发)
—> 用代码生成网站/App需要的动态内容(数据)
—> CGI / WSGI —> PHP / ASP(C#) / JSP(Java)
Python也可以为作为服务器端应用开发的编程语言
优点:开发效率极高(用很少的代码可以做很多的事情)
缺点:执行效率不高(有很多公司更看重开发效率而不是执行效率)
Python有很多的框架专门用于服务器端应用开发
—> 使用框架可以减少重复代码和基础代码的编写
—> 程序员只需要专注于核心的业务逻辑代码的编写

2. 为什么选择Django框架?
—> 源于真实的CMS系统的项目
—> 生态圈非常繁荣 —> 大部分功能都有成熟的解决方案
1.创建Django项目并且实施版本控制
安装Django
pip3 install django== 2.2.12 -i https://pypi.douban.com/simple/(使用豆瓣镜像源下载速度会快一点)
查看Django版本
django-admin --version
创建Django项目
django-admin startproject hellodjango(filename)
进入到创建的Django项目文件夹中
cd hellodjango
初始化一个Git仓库
git init
根据需要添加版本控制忽略文件
touch .gitginore ------>http://gitignore.io/
vim .gitignore --进入并在里面加上 venv/ .idea/
将文件放到仓库的暂存区(缓存区)
git add
git add . 添加所有
将暂存区内容提交到本地版本仓库
git commit -m ‘提交的原因’
关联远端仓库地址
git remote add origin(给url取名字) 仓库的url(ssh)
向远端仓库推送代码
git push -u origin master
从远端仓库克隆到pycharm,并设置好保存的地方
git clone url
在这里插入图片描述
在这里插入图片描述
在pycharm给项目配置Python环境 —>settings
在这里插入图片描述
并且给项目配置虚拟环境
在这里插入图片描述
保存在项目文件夹下,并且命名为venv,虚拟环境选择Python3版本,系统会自动检测,然后点击ok
在这里插入图片描述
打开控制台Terminal在虚拟环境下安装Django,方法和上面一样
pip install django==2.2.12 -i https://pypi.doubanio.com/simple
安装mysqlclient
pip install mysqlclient -i https://pypi.doubanio.com/simple
查看已安装的包
pip freeze
重定向生成依赖项清单
pip freeze > requirements.txt

到这里环境配置基本完成

2.使用Django框架

2.1在项目文件夹下创建Django应用
方法一:django-admin startapp 应用名
方法二:python manage.py startapp 应用名
一个Django项目中可以包含一个或多个Django应用
在settings.py进行基本配置
将创建的应用名添加到INSTALLED_APPS ---->应用名
修改编码方式为中文
LANGUAGE_CODE = ‘zh-hans’
修改时区
TIME_ZONE = ‘Asia/Chongqing’
2.2编写视图函数
views.py —> 视图函数(接收来自浏览器的请求,给用户以响应)

def show_index(request: HttpRequest):

    return HttpResponse(content)
    render(request, 'index.html', {...}) ---> HttpResponse

2.3配置URL
使用视图函数需要配置URL映射(请求的路由) —> urls.py
URL(统一资源定位符)相对路径 -----> 视图函数 ----> path

urlpatterns=[
	path('hello/', show_index),]

2.4前端渲染和后端渲染
真正的项目开发中,前端工程师会提供静态页面,如何让静态页面上呈现动态内容???
方法一(前端渲染 —> 在浏览器中完成渲染操作):
前端通过Ajax请求获得后端提供的数据,用JavaScript代码使用数据渲染页面。
前后端分离开发!!!
方法二(后端渲染 —> 在服务器端用Python程序完成):
把前端提供的静态页改造成模板页,把动态内容换成占位符,待会通过
Python程序把动态内容填入进去,直接把静态页处理成动态页
编写、配置、渲染模板页

<ul id="fruits">
        {% for fruit in fruits %}
        <li>{{ fruit.name }}: {{ fruit.price }}<a href="">×</a></li>
        {% endfor %}
    </ul>

创建templates文件夹(静态页放到这里)
在settings.py里配置加载静态资源的路径

TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates'), ],
            'APP_DIRS': True,
            ...
        },
    ]

运行Django项目
Django自带的测试服务器
python manage.py runserver 默认
python manage.py runserver 0.0.0.0:8000 还可以选择ip和端口号

day0519

mysql创建新用户:
1. 创建用户:create user ‘jackfrued’@’%’ identified by ‘jackfrued.618’;
2. 给权限:grant all privileges on vote.* to ‘jackfrued’@’%’;
2. 刷新权限:flush privileges;
使用MySQLsilent可直接使用,pymysql需要配置以下:
在这里插入图片描述
在这里插入图片描述
需要添加的代码:
global version_info
version_info = (1, 4, 2, “final”, 0)

    if type(query) == bytes:
            query = query.decode(errors='replace')
        elif type(query) == str:
            query = query.encode(errors='replace')
        else:
            query = force_text(query, errors='replace')

模型创建表(正向工程):
生成迁移文件:python manage.py makegrations <可以指定app应用名>
生成表:python manage.py migrate <可以指定app>
pycharm进入交互式环境:
在Terminal中:python manage.py shell

过Django自带的界面管理数据库:
1. 进入Django管理界面(admin.py)
1) 创建超级用户:python manage.py createsuperuser
2. 在admin.py中注册:
1)admin.site.register(Subject)
2)注册详细的管理界面:
class SubjectAdmin(admin.ModelAdmin) :
内容
添加SubjectAdmin:
admin.site.register(Subject,SubjectAdmin)

day0521

MVC架构图解,实质上就是MTV
在这里插入图片描述

day0523(项目待更新中~)

  1. 表创建模型(反向工程):
    python manage.py inspectdb > models.py
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值