一、Django中的app
在每一个diango项目中可以包含多个APP,相当于大型项目中的分系统、子模块、功能部件等。相互之间比较独立,但也有联系。
在pycharm下方的Terminal终端中输入命令:
ptyhon manage.py startapp app01
就可以创建一个名为app01的APP,Django自动生成app01文件夹
创建好之后需要在settings中进行配置注册
二、模板路径配置
模板文件一般都存放在templates文件夹下,该文件夹也就是html文件们的归置目录,使用pycharm创建Django项目时,该文件夹是默认添加的,如果是自己建的Django项目,就需要在settings文件夹中进行配置注册。
三、静态文件配置
我们可以将html文件返回给用户,但是还需要一些其他类型的文件,如css,js和其他的插件,所有在Django中,一般将静态文件放在static目录中。所以需要在项目目录下新建一个static文件夹。
为了让Django找到这个目录,依然需要对settings进行配置
然后在html文件中,就可以引入js文件了
四、登录功能
login.html
<body> <!-- action:提交给后台的地址,有三种写法 --> <!-- 1.http://127.0.0.1:8000/login --> <!-- 2./login/ --> <!-- 3.空 --> <form action="/login/" method="post"> <p> 用户名:<input type="text" name="name" class="form-control"> </p> <p> 密码:<input type="text" name="pwd" class="form-control"> </p> <input type="submit" value="提交"> </form> </body>
views.py
def login(request): # request.method--前台提交过来请求的方式 if request.method == "GET": return render(request, "login.html") elif request.method == "POST": # request.POST(相当于字典)--post形式提交过来的数据 # request.POST.get("name")--推荐用get取值(取出列表最后一个值) name = request.POST.get("name") pwd = request.POST.get("pwd") # 连接数据库 conn= pymysql.connect(host='127.0.0.1', port=3306, db='abc', user='root', password='123456') cur = conn.cursor() # 防止sql注入漏洞,推荐以下写法 cur.execute('select * from user where name=%s and password=%s', [name, pwd]) user = cur.fetchone() if user: return HttpResponse("登录成功") else: return HttpResponse("密码或用户名错误")
五、get请求和post请求
get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)
post:往后台提交数据
六、新手三件套
1、render:返回页面,默认回去templates中来,所以需要注意路径的配置
2、redirect:重定向
3、HttpResponse:返回字符串
本质都是返回HTTPResponse的对象
七、ORM介绍
ORM即Object Relational Mapping,全称为对象关系映射 使用方式:连接mysql数据库 在settings文件中配置: 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': 'admin', 'NAME': 'lqz', } 还需要在app下的__init__.py中写: import pymysql pymysql.install_as_MySQLdb() 然后在models文件中新建一个类,该类就是数据库中的数据表 class User(models.Model): # 自增int类型,主键 id = models.AutoField(primary_key=True) # name和pwd是varchar类型,长度是32 name=models.CharField(max_length=32) pwd=models.CharField(max_length=32) 接下来要在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是: 1.python manage.py makemigrations ---记录以下数据库的变化 2.python manage.py migrate ---将变化同步到数据库中