目录
在python的terminal中激活虚拟机但是报错
如下图
打开python的编译器权限管理
用管理员权限在powershell里找到文件夹,并打开编译器的权限(python默认关闭编译器权限)
配置python的虚拟环境并下载django
django默认目录的介绍
manage.py:最重要!项目的管理、启动项目、创建app、数据管理(不用自己修改,但是后面会使用)
asgi.py(异步)和wsgi.py(同步)都用来接收网络请求,也不用自己编写
url.py写url和python函数的对应关系--常常操作的文件
settings.py--配置文件(连接数据库、注册app等的时候使用)常常操作的文件
django中的app概念
一个项目下可以有多个app,但是一般就一个。不同的app具备不同的功能,具有各自独立的函数、数据库等等(app的类型中就包含API)
创建app
(pythonProject) PS E:\pythonProject\pythonProject> django-admin startapp app01
app01是app的名称
创建成功之后,目录如下:
展开app目录如下:
app中的目录结构
apps.py(app启动的类),
migrations(用python修改数据库字段时,将日志记录在此处),
tests.py(做单元测试),
admin.py(django默认提供了admin后台管理,自己测试往里面录数据的时候使用,一般不适用)
上述都是固定的,不用动;
下面都是经常改动的:
views.py(重要)url.py中会写url与函数的对应关系,url执行的函数,在此处定义
models.py(重要) 专门对数据库进行操作
运行django时,要确保app已注册(在settings.py中)
步骤
1、打开app01->apps.py。看到红框中的内容,复制下来
2、找到 ->settings.py中的INSTALLED_APPS函数
3、添加app01的注册
在其中加上这段代码(跟android很像)
'app01.apps.App01Config'
在urls.py中编写url和视图函数的对应关系
在urls.py中,编写url,path()中写的就是url的一个后缀
当访问这个url的时候,程序会在app01的views.py中,找index函数。(函数一般写在app的views.py中。)上面那条被注释掉的意思是,当访问后缀为admin/的url时,程序会去访问并执行admin.site中名字为urls的函数。当然,要记得从app01导入views
在app01->views.py中编写对应的index函数
导包,写一个最简单的函数。访问了urls.py中定义的网址后,用户的浏览器界面上就会出现“欢迎使用”四个字。
启动django项目
可以通过在Terminal中输入命令行启动
python manage.py runserver
如下图:
但是第一次报错
ImportError: Couldn’t import Django. Are you sure it’s installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
说我无法导入Django包,在网上查了一下,说是因为没有成功激活虚拟环境,但是我明明记得我是激活了的。于是,本着 Tao of CS:重启解决95%的问题,重装解决99%的问题,重买解决100%的问题。我新开了一个Terminal再次输入命令运行。结果告诉我编解码有问题。其实就是python程序中使用了UTF-8编码,而没有在脚本上申明要使用UTF-8编码。说的更加直接一点,就是用了中文字符,一般我们习惯使用中文作为注释。只需要在python脚本程序中,主动申明我们使用UTF-8编码方式。
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte
这个很好办啊,就找到上面提示的文件,在前面加上这两句,告诉它是用utf-8编解码就行了。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
然后再新建一个Terminal。输入命令,就得到了——
Django,启动!
接下来根据那个蓝色的网址,去访问一下。会看到一个web界面,它的url就是蓝色的那一串,但是会提示
很简单,在url后面加上/index/就可以了
成功显示出我们之前在views.py中写的函数
提示有18个未应用的迁移
18个未应用的迁移。在应用程序迁移之前,您的项目可能无法正常工作:管理员、身份验证、内容类型、会话。
运行“python管理”。py migrate’来应用它们。
解决方案也很简单,人家已经给提示了。照着输入即可:(得到一堆OK)
最后再次启动runserver
OK了