1.用python django开发online judge时,源码 测评系统能不能用c++实现?这两个最后怎么连接?
2.Python和Django的源码基于协同过滤算法的**推荐系统源码及使用手册
3.pythonå¦ä½ä½¿ç¨djangoç
用python django开发online judge时, 测评系统能不能用c++实现?这两个最后怎么连接?
Time&Memory篇
(一)思路:
先利用subprocess.Popen(),源码调用外部命令执行程序,将.in文件输入,源码将程序运行结果保存在.out文件中。源码程序数据输入和结果保存完成了,源码自动找怪源码接下来就是源码时间和内存的问题。通过pid获取进程号,源码然后利用psutil模块实现进程的源码控制与监听,即可完成一个简单的源码Time&Memory的判断。
(二)代码:
import time
import subprocess
import psutil
dir_work = "./"
fin = open("./main.in",源码 "r+")
fout = open("./main.out", "w+")
p_cmd = { # 运行程序的命令,这里以C++、C语言为例
"gcc": "./main",源码
"g++": "./main",
}
def time_mem(language):
"""
执行程序获取执行时间与内存
"""
time_limit = 1 #second 时间限制
mem_limit = * #kb 内存限制
max_rss = 0 #记录最大内存
problem_info = { } #时间单位ms 内存单位kb
p = subprocess.Popen(p_cmd[language],shell=True,cwd=dir_work, stdin=fin, stdout=fout, stderr=subprocess.PIPE) # cwd设置工作目录
start = time.time() #开始时间
print("程序开始运行的时间是%s" % start)
pid = p.pid
glan = psutil.Process(pid) #监听控制进程
while True:
time_now = time.time() - start #
if psutil.pid_exists(pid) is False: #运行错误
problem_info['time'] = time_now
*problem_info['memory'] = max_rss/.0
problem_info['result'] = "Runtime Error"
return problem_info
m_infor = glan.memory_info()
print(m_infor)
rss = m_infor[0] #获取程序占用内存空间 rss
if p.poll() == 0: #运行正常结束,跳出循环,源码jq源码解读继续判断
end = time.time()
break
Python和Django的源码基于协同过滤算法的**推荐系统源码及使用手册
软件及版本
以下为开发相关的技术和软件版本:
服务端:Python 3.9
Web框架:Django 4
数据库:Sqlite / Mysql
开发工具IDE:Pycharm
**推荐系统算法的实现过程
本系统采用用户的历史评分数据与**之间的相似度实现推荐算法。
具体来说,源码这是基于协同过滤(Collaborative Filtering)的一种方法,具体使用的是基于项目的协同过滤。
以下是系统推荐算法的实现步骤:
1. 数据准备:首先,从数据库中获取所有用户的源码之站评分数据,存储在Myrating模型中,包含用户ID、**ID和评分。使用pandas库将这些数据转换为DataFrame。
2. 构建评分矩阵:使用用户的评分数据构建评分矩阵,行代表用户,热血沙尘源码列代表**,矩阵中的元素表示用户对**的评分。
3. 计算**相似度:计算**之间的相似度矩阵,通常通过皮尔逊相关系数(Pearson correlation coefficient)来衡量。
4. 处理新用户:对于新用户,推荐一个默认**(ID为的vfp源码下载**),创建初始评分记录。
5. 生成推荐列表:计算其他用户的评分与当前用户的评分之间的相似度,使用这些相似度加权其他用户的评分,预测当前用户可能对未观看**的评分。
6. 选择推荐**:从推荐列表中选择前部**作为推荐结果。
7. 渲染推荐结果:将推荐的**列表传递给模板,并渲染成HTML页面展示给用户。
系统功能模块
主页**列表、**详情、**评分、**收藏、**推荐、注册、登录
项目文件结构核心功能代码
显示**详情评分及收藏功能视图、根据用户评分获取相似**、推荐**视图函数
系统源码及运行手册
下载并解压源文件后,使用Pycharm打开文件夹movie_recommender。
在Pycharm中,按照以下步骤运行系统:
1. 创建虚拟环境:在Pycharm的Terminal终端输入命令:python -m venv venv
2. 进入虚拟环境:在Pycharm的Terminal终端输入命令:venv\Scripts\activate.bat
3. 安装必须依赖包:在终端输入命令:pip install -r requirements.txt -i /simple
4. 运行程序:直接运行程序(连接sqllite数据库)或连接MySQL。
pythonå¦ä½ä½¿ç¨djangoç
导读ï¼æ¬ç¯æç« é¦å¸CTOç¬è®°æ¥ç»å¤§å®¶ä»ç»æå ³pythonå¦ä½ä½¿ç¨djangoççç¸å ³å 容ï¼å¸æ对大家ææ帮å©ï¼ä¸èµ·æ¥ççå§ãPythonä¸Djangoå¦ä½ä½¿ç¨ï¼django1.9.5python3.4.4
æ件ç»æ
å¨ä¸ä¸ªç¬è«èæ¬ä¸å°ç¬åçæ°æ®éè¿djangoèªå¸¦çmodelä¿åå°æ°æ®åº
ä¿®æ¹çæ件(å ¶ä½pycharmæ°å»ºDjango项ç®çæ,æªä¿®æ¹):
#testapp/models.pyfromdjango.dbimportmodels?classProblem(models.Model):?title=models.CharField(max_length=,default="")?author=models.CharField(max_length=,default="")def__str__(self):returnself.title?pass#testapp/spider.pyimportosimportsysimportdjango?pathname=os.path.dirname(os.path.abspath(__file__))sys.path.insert(0,pathname)sys.path.insert(0,os.path.abspath(os.path.join(pathname,'..')))os.environ.setdefault("DJANGO_SETTINGS_MODULE","testproject.settings")?django.setup()?fromtestapp.modelsimportProblem?if__name__=="__main__":?p=Problem(title="hi",author="hi")?p.save()?pass#testproject/setting.py......INSTALLED_APPS=[?'django.contrib.admin',?'django.contrib.auth',?'django.contrib.contenttypes',?'django.contrib.sessions',?'django.contrib.messages',?'django.contrib.staticfiles',?#æ·»å åºç¨?'testapp',]......#testapp/admin.pyå¨åå°ç®¡ççé¢æ³¨åProblemfromdjango.contribimportadmin?#Registeryourmodelshere.?fromtestapp.modelsimportProblemadmin.site.register(Problem)
è¿è¡spider.py,æ·»å ä¸æ¡å®ä¾è®°å½
è¿è¡Django项ç®,å建管çåè´¦å·,åå°ç®¡ççé¢æ¥çç»æ
pythonæä¹æ建djangoæ¡æ¶
è¿è¡ç¯å¢
Windows7ï¼ä½ï¼+Python2.7+Django1.7.1
1.å®è£ djangoæ¡æ¶
å½ç¶ä½ é¦å è¦æpythonç¯å¢ï¼å¯¹äºå¦pythonçæå们è¿ä¸ªå°±ä¸å¤è¯´äº~~
æ使ç¨çæ¯setuptoolså·¥å ·æ¥å®è£ çï¼setuptoolsæ¯pythonä¸å®è£ 第ä¸æ¹æ¨¡å常ç¨çå®è£ å·¥å ·
1.1å®è£ setuptoolså·¥å ·ï¼å¦æä¼å®è£ çå¯ä»¥ç´æ¥è·³è¿ï¼
å ä»è¿ä¸ªå°åä¸è½½ez_setup.pyï¼
(å¨é¡µé¢æä¸é¢)
æä¸è½½çæ¯setuptools-7.0.zipï¼å°å ¶è§£åï¼å°è§£åçsetuptools-7.0æ件æ¾å°ä¸ä¸ªç®å½ï¼æè¿éåå®å°å ¶æ¾å°C:\workspaceç®å½ä¸
æå¼å½ä»¤è¡cmd,å¨cmdä¸åæ¢å°C:\workspace\setuptools-7.0ï¼å³setuptools-7.0å®è£ ç®å½
è¿è¡å½ä»¤ï¼
pythonez_setup.py
该å½ä»¤ä¼å®è£ setuptoolså·¥å ·ï¼å®è£ åæå¼ä½ çpythonå®è£ ç®å½ä¸çScriptsç®å½ï¼æçæ¯C:\Python\Scriptsï¼ï¼ä¼çå°easy_install.exeçæ件
注æå°pythonå®è£ ç®å½ä¸çScriptsç®å½ï¼æçæ¯C:\Python\Scriptsï¼æ·»å å°ç¯å¢åépathï¼å¦åä¸é¢çeasy_installå½ä»¤ä¼æ¥é
1.2å®è£ djangoæ¡æ¶
å¨cmdä¸è¾å ¥:
easy_installdjango
æçå®è£ è¿ç¨å¯è½ä¼æ示缺å°vc++å ï¼æ ¹æ®æ示ç½åï¼æå¿äº~ï¼ä¸è½½å ï¼æä¸è½½çæ¯VCForPython.msiï¼å®è£ vc++ååæ§è¡å®è£
è¿æ ·å°±èªå¨å®è£ äºdjangoï¼æ¯ä¸æ¯å¾æ¹ä¾¿ï¼åå
2.å建django项ç®ï¼è¿éåå®å¨c:\workspace\djangoTestä¸å建(åjavaæç¹å·®å«ï¼javaæ¯ç´æ¥å建项ç®å°±å¯ä»¥äºï¼pythonæ¯è¦å å建项ç®åå¨é¡¹ç®éå建app)
è¿å ¥c:\workspace\djangoTestç®å½ï¼è¾å ¥ï¼
django-adminstartprojectmytodo#ç½ä¸å¾å¤æ¯pythondjango-admin.pystartprojectmytodoï¼çæ¬ä¸ä¸æ ·å¯è½å½ä»¤æç»å¾®å·®å«
å°±å建äºmytodo项ç®
3.å¯å¨è°è¯æå¡å¨
è¿å ¥c:\workspace\djangoTest\djangoTest\mytodoç®å½ï¼
cdmytodo
ç¶åè¾å ¥ï¼
pythonmanage.pyrunserver
å¨æµè§å¨ä¸è¾å ¥ï¼çè½å¦è®¿é®é¡µé¢
4.å建app
è¾å ¥å½ä»¤ï¼pythonmanage.pystartapptodo
å°±å¨mytodo项ç®ä¸å建äºä¸ä¸ªappï¼å³todo
ç¼è¾mytodo/settings.pyæ件ï¼å¨INSTALLED_APPSæ·»å æ¡ç®todo
INSTALLED_APPS=(
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'todo',
)
å³å¨æåæ·»å ä¸è¡todo(æççæ¬æ¯é¡¹ç®å+appåï¼å³mytodo.todo)
å次è¾å ¥ï¼pythonmanage.pyrunserverççä½ appæ¯å¦é 置好äºï¼å »æè¾¹åè¾¹æµè¯çå¥½ä¹ æ¯ï¼åå~
5.é ç½®æ°æ®åº
djangoé»è®¤çæ¯ä½¿ç¨SQLiteæ°æ®åºä½ä¸ºåå°æ°æ®åºï¼ä»ç¶æå¼mytodo/settings.pyï¼å¯ä»¥çå°ä¸é¢ä¸æ®µï¼
DATABASES={
'default':{
'ENGINE':'django.db.backends.sqlite3',
'NAME':os.path.join(BASE_DIR,'db.sqlite3'),
}
}
è¿å°±æ¯django项ç®çæ°æ®åºé ç½®ï¼é»è®¤æ¯ä½¿ç¨SQLiteï¼æ们就使ç¨ä½¿ç¨é»è®¤é ç½®ï¼å®è£ SQLiteæ°æ®åºï¼ä¸éè¦ä¿®æ¹é ç½®æ件
å¬å°åè¦å®è£ æ°æ®åºï¼å¤§å®¶è¯å®åè§å¾å¥½å¤æï¼å ¶å®å¨pythonéå®è£ ä¸æ¹æ¨¡åï¼æ°æ®åºä»ä¹çå¾ç®åï¼ä¸æ¡å½ä»¤å°±å¯ä»¥æå®äº~~
è¾å ¥å½ä»¤ï¼
easy_installpysqlite
è¿æ ·å°±å®è£ äºSQLiteæ°æ®åº
å®è£ å®æ°æ®åºï¼æ们ä¹æµè¯ä¸ä¸ï¼è¾å ¥å½ä»¤ï¼
pythonmanage.pysyncdb
åºç°successfullyæ示就å®è£ æåäº,æå¼mytodoç®å½ï¼ççéé¢æ¯å¦æä¸ä¸ªdb.sqlite3æ件ï¼è¿å°±æ¯ä¸é¢é ç½®çæ°æ®åºæ件
pythonèæ¬ä¸ä½¿ç¨djangoorm项ç®å¼åä¸ï¼ç»å¸¸ä¼éå°ä¸ä¸ªéæ±ï¼å°æ°æ®ä»æ§æ°æ®åºä¸å¯¼å ¥å°æ°æ°æ®åºä¸ãæ¯å¦ä»SQLServerä¸å¯¼å ¥å°æ°çMySQLæ°æ®åºä¸ãä¸è¬å¯ä»¥åå©pymysqlåpymssqlåèæ¬å®æå¯¼å ¥ãä½æ¯å段ç¹å«å¤çæ¶åï¼å¦æè½åå©Djangoçormï¼åä¼æ¹ä¾¿å¾å¤ã
å¨manage.pyç®å½å建pyæ件import_data.py
app.models
settings.pyä¸é ç½®å¤ä¸ªæ°æ®åº
ç»è¯ï¼ä»¥ä¸å°±æ¯é¦å¸CTOç¬è®°ä¸ºå¤§å®¶æ´ççå ³äºpythonå¦ä½ä½¿ç¨djangoççç¸å ³å 容解çæ±æ»äºï¼å¸æ对æ¨ææ帮å©ï¼å¦æ解å³äºæ¨çé®é¢æ¬¢è¿å享ç»æ´å¤å ³æ³¨æ¤é®é¢çæååï½