web服务器搭建(django搭建服务器)

引言

当你精通python,此时你又需要以你的某个网站作为服务器,那我推荐你使用django!

有如下几个原因:

1、Django是一个开放源代码的Web应用框架,由Python写成。

2、拥有用于创建模型的对象关系映射(数据库处理)

3、为最终用户(该服务器/网页的最终使用者)设计较好的管理界面

4、良好的URL 设计

5、可以部署在多种服务器上

下面分别按照上面几点讲述django

1、架构设计

django是一个遵循 MVC 设计模式的框架,即Model、View、Controller,分别代表模型、视图、控制器。同时django遵循MTV 的设计模式,即Model、Template、View,分别代表模型、模版、视图。
但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。

层次 作用
模型(Model),即数据存取层 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等
模板(Template),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
视图(View),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

2、数据库处理

django让开发者可以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。

同时,dajngo支持多种数据库,已经支持Postgresql,MySql, Sqlite3,Oracle。

3、易用的管理界面

开发者可以不需要重新设计、开发一套数据管理工具,用以远程操作数据库,Django自带一个ADMIN site,类似于内容管理系统,可以让最终用户方便、快捷的对数据库进行处理

启动django之后,用户可以登录下面网址
http://127.0.0.1:8000/admin/
在这里插入图片描述
登录之后,用户可以对已经创建的数据库对象进行操作
在这里插入图片描述
如下图所示,我们可以为Goods这个数据库表进行goods的添加
在这里插入图片描述

4、良好的URL设计

Django的控制器采用框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,十分方便,开发者只需要使用很少的代码就可以完成很多事。

如下图,我们可以使用正则表达式来匹配各式各样的url
在这里插入图片描述

5、支持多种服务器

Django可以运行在Apache,Nginx上,也可以运行在支持WSGI,FastCGI的服务器上,可以说市面上常用的服务器,他都支持!!

最后附上django整体流程的一个总结

一、
运行Django:
python manage.py runserver [端口号]
例子:
python ShangCheng/manage.py runserver

停止Django:
Ctrl + pauseBreak


二、
创建数据库
1、django-admin startapp TestModel                                               # TestModel是模块名
2、修改 TestModel/models.py 文件
    # models.py
    from django.db import models

    class Test(models.Model):
        name = models.CharField(max_length=20)
3、python manage.py migrate                                                      # 创建表结构
4、python manage.py makemigrations TestModel                                     # 让Django知道我们在我们的模型有一些变更;TestModel是模块名
5、python manage.py migrate TestModel                                            # 创建表结构;TestModel是模块名
6、之后需要在settings.py 的 INSTALLED_APPS 里添加TestModel                        # 添加配置项


三、表单内的方法调用
1、GET方法:从服务器获取数据
①登录 http://127.0.0.1:8000/form/search-form/ 对应 search-form.html
②输入数据之后,并点击按钮,服务器会将数据按照 action配置的url路径调用对应的方法传递回来
③在例子中,服务器通过search.search()方法 将页面的数据处理后并重新渲染到 search.html上
2、POST方法:向服务器上传递数据
①登录 http://127.0.0.1:8000/form/search-post/ 对应 search.html
【这里是因为在 urls.py里配置的 path('form/search-form/', search.search_form) 而search.search_form渲染的是search.html】
②输入数据之后,并点击按钮,会将页面上的数据发送给服务器
③在例子中,我们向服务器上传数据,服务器经过处理,重新渲染到 search-post.html上
3、关于request对象,查阅https://www.runoob.com/django/django-form.html尾页



四、关于urls.py中的使用
1、re_path("^index/([0-9]{4})/$", views.withYear),                       # http://127.0.0.1:8000/index/2009
上述对应到views.py:
    def withYear(request, year):
    ([0-9]{
    
    4}) 对应到上述的year
2、re_path("^index/([0-9]{4})/([0-9]{2})/$", views.withYearMonth),       # http://127.0.0.1:8000/index/2009/01/
上述对应到views.py:
    def withYearMonth(request, year, month):
    ([0-9]{
    
    4}) 对应到上述的year
    ([0-9]{
    
    2}) 对应到上述的month
3、path("testModel/", include("TestModel.urls")),                        # http://127.0.0.1:8000/testModel/admin
需要在TestModel里面创建urls,此时就可以以 testModel/ + TestModel.urls中的路径为url
4、path("login1/", views.login, name="login"),                           # http://127.0.0.1:8000/login1
在views.py中的:
    def login(request):
    我们可以通过 redirect(reverse("login")) 进行反向解析 即对应上述的name

五、关于django提供的管理界面账号密码

如果想使用django的账号管理界面 or 已经使用但是忘记账号密码,可以输入以下指令
python manage.py createsuperuser
之后重新创建账号密码即可

猜你喜欢

转载自blog.csdn.net/weixin_40301728/article/details/124576126